首页 新闻 会员 周边 捐助

C# vs2005线程的问题

0
悬赏园豆:20 [已解决问题] 解决于 2015-07-04 13:17

我定义了一个方法SetupInfo(),将查询到的结果绑定到datagridview,定义一个方法SetupStyle()
根据某个单元格的值,设置该单元格所在行的颜色。
SetupInfo(),执行后,开始一个子线程执行SetupStyle(),
还有一个按钮刷新,单击时会重复上面的过程。
因为SetupStyle()执行的时间比较长,当短时间内连续执行这个过程时(比如连续单击刷新按钮),可能会出现子线程未执行完的时候又开始了一个子线程。程序就出现直接关闭的情况。

菜鸟求问大神们该如何做。

菜鸟E419的主页 菜鸟E419 | 初学一级 | 园豆:120
提问于:2015-06-23 14:22
< >
分享
最佳答案
0

加个成员变量

long _pending;

if(InterlockedCompareExchange(_pending,1,1) == 0)

 start thread run setupstyle;

void setupstyle()

{

 interlockedExchange(_pending,0);

}

收获园豆:10
Launcher | 高人七级 |园豆:45050 | 2015-06-23 14:33
其他回答(1)
0

lock(){}

收获园豆:10
中文代码 | 园豆:951 (小虾三级) | 2015-06-23 15:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册