情况是这样的,我做了一个定时器,每天某个时间调用接口,发送所有数据。
由于一次数据可能多条 所以做两个分页查询(先说明下 为了让没有数据的时候 不从复调用接口,所以每天只执行一次)
在下面必须添加Thread.Sleep();否则无法按for循环执行。
public void StartOnHour_GuoQi(object sender, System.Timers.ElapsedEventArgs e)
{
//整点发送
if (e.SignalTime.Hour == hour_start && e.SignalTime.Minute == minute_start && e.SignalTime.Second == 0)
{
//执行请求处理
try
{
var param = new { pageindex = 0, pagesize = 10 };
var result_page = InvokeAgentService("OverdueDataCount", param);
dynamic page_Json = JKZL.Common.Core.Converts.Json2Dynamic.DynamicConvertHelper.ConvertJson(result_page);
//总记录数
int total = CommFunction.IntParse(page_Json.Data.TotalCount);
//总页数
int allpage = 0;
/*分页*/
if ((total % pageSize) == 0)
{
allpage = total / pageSize;
}
else
{
allpage = (total / pageSize) + 1;
}
for (int pageIndex = 0; pageIndex < allpage; pageIndex++)
{
var thread_GuoQi = new Thread(() =>
{
var parameters = new { pageindex = pageIndex, pagesize = pageSize };
var result = InvokeAgentService("GetOverdueData", parameters);
dynamic resutlJson = JKZL.Common.Core.Converts.Json2Dynamic.DynamicConvertHelper.ConvertJson(result);
if (resutlJson != null && resutlJson.Code == "10000")
{
foreach (var item in resutlJson.Data.Items)
{
//执行代码
}
else
{
LogHelp.SysLog("请求返回结果错误结果--接口数据:" + result, "error");
}
});
thread_GuoQi.Start();
Thread.Sleep(50);
}
}
catch (Exception ex)
{
LogHelp.SysLog("执行过期通知处理程序错误" + ex.Message, "error");
}
}
}
.net 多线程 调用接口
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2015-07-30 10:23关注
关键是
JKZL.Common.Core.Converts.Json2Dynamic.DynamicConvertHelper.ConvertJson(result);
这个调用是否线程安全,如果不是,就需要同步。解决 无用评论 打赏 举报
悬赏问题
- ¥15 stm32流水灯+呼吸灯+外部中断按键
- ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
- ¥15 NX MCD仿真与博途通讯不了啥情况
- ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
- ¥15 gradio的web端页面格式不对的问题
- ¥15 求大家看看Nonce如何配置
- ¥15 Matlab怎么求解含参的二重积分?
- ¥15 苹果手机突然连不上wifi了?
- ¥15 cgictest.cgi文件无法访问
- ¥20 删除和修改功能无法调用