线程异步操作,更新其中一个报错不影响另一个的运行(Task )
2014-05-04 15:24
267 查看
//子系统同步更新
BD001_BLL bll = new BD001_BLL();
List<BD001_Model> list = bll.GetModelListByuserid(model.BD010_001);
foreach (BD001_Model item in list)
{
BD017_BLL itembll = new BD017_BLL();
BD017_Model itemmodel = itembll.GetModel(item.BD001_001);
itemmodel.BD017_002 = model_BD010.BD010_011;
itemmodel.BD017_003 = model_BD010.BD009_001;
itemmodel.BD017_004 = model_BD010.BD010_002;
itemmodel.BD017_005 = model_BD010.BD010_003;
itemmodel.BD017_007 = model_BD010.BD010_005;
itemmodel.BD017_008 = model_BD010.BD010_006;
itemmodel.BD017_009 = model_BD010.BD010_007;
ResultManage<string, bool> result;
Task task = new Task(new Action(() =>
{
IOC ioc = new IOC();
ioc.Create(item.BD001_005, item.BD001_900, item.BD001_007, item.BD001_008, item.BD001_006);
if (ioc.abstract_factory.UserInfoManage.Exists(itemmodel).Manage == "true")
{
result= ioc.abstract_factory.UserInfoManage.Update(itemmodel);
}
else
{
result= ioc.abstract_factory.UserInfoManage.Add(itemmodel);
}
MessageBox.Show(result.Manage+item.BD001_006 );
}));
task.Start();
}
BD001_BLL bll = new BD001_BLL();
List<BD001_Model> list = bll.GetModelListByuserid(model.BD010_001);
foreach (BD001_Model item in list)
{
BD017_BLL itembll = new BD017_BLL();
BD017_Model itemmodel = itembll.GetModel(item.BD001_001);
itemmodel.BD017_002 = model_BD010.BD010_011;
itemmodel.BD017_003 = model_BD010.BD009_001;
itemmodel.BD017_004 = model_BD010.BD010_002;
itemmodel.BD017_005 = model_BD010.BD010_003;
itemmodel.BD017_007 = model_BD010.BD010_005;
itemmodel.BD017_008 = model_BD010.BD010_006;
itemmodel.BD017_009 = model_BD010.BD010_007;
ResultManage<string, bool> result;
Task task = new Task(new Action(() =>
{
IOC ioc = new IOC();
ioc.Create(item.BD001_005, item.BD001_900, item.BD001_007, item.BD001_008, item.BD001_006);
if (ioc.abstract_factory.UserInfoManage.Exists(itemmodel).Manage == "true")
{
result= ioc.abstract_factory.UserInfoManage.Update(itemmodel);
}
else
{
result= ioc.abstract_factory.UserInfoManage.Add(itemmodel);
}
MessageBox.Show(result.Manage+item.BD001_006 );
}));
task.Start();
}
相关文章推荐
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到
- C#在一个线程中操作另一个线程的控件
- C# 线程知识--使用Task执行异步操作(转)
- 写2个线程,其中一个线程打印1~52,另一个线程打印A~z,打印顺序应该是12A34B45C……5152Z
- C# 线程知识--使用Task执行异步操作
- C# 线程知识--使用Task执行异步操作
- C#使用oledb连接excel运行Insert Into语句出现“操作必须使用一个可更新的查询”的解决的方法
- Access中用SQL语句将其中一个表的列更新到另一个表的对应列
- 多线程发送操作之一:运行一个线程的格式化代码(Specifying the Code to Run on a Thread)
- 相等的两个对象其中一个属性值修改,会影响另一个值;解决方法
- C#一个线程操作另一个线程的控件的方法(转)
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- [转]C# 线程知识--使用Task执行异步操作
- 在一个线程中操作另一个线程的控件
- CLR 无法从 COM 上下文 0x1a2740 转换为 COM 上下文 0x1a28b0,这种状态已持续 60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作
- Android AsyncTask实现一个线程操作完成后启动另一个线程
- C# 线程知识--使用Task执行异步操作
- C# 线程知识--使用Task执行异步操作