线程的暂停和恢复

橘子皮... 2016-03-06 12:25:12
1:为什么 Suspend 和 resume方法微软提示过时了?有什么bug么?
目前比较好的线程暂停恢复是用什么思路写呢?

2:
this.Invoke(new Action(() =>
{
TextBox2.Text = “1”;
}));
这段c#代码如何转成vb.net代码?

3: 如果需要用到跨线程刷新UI,怎么设计比较能平衡性能和效果的关系?
...全文
192 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
socg 2016-03-09
  • 打赏
  • 举报
回复
控制别人的线程才需要暂定和恢复,自己的线程最好不用
xian_wwq 2016-03-07
  • 打赏
  • 举报
回复
引用 楼主 wowfiowow 的回复:
1:为什么 Suspend 和 resume方法微软提示过时了?有什么bug么? 目前比较好的线程暂停恢复是用什么思路写呢? a。让线程自行退出,不会导致资源泄露 b。如果要暂停工作,可以让线程空跑; 如下代码,修改bFlag为false,则暂停处理;设为True,则恢复正常

bool bRunning = true;  //控制变量

threadfunc()
{
    
    while(true)
    {
         if(bRunning)
         {
             // do your work
        }
        else
        {
                Thread.sleep(1);
         }
    }
}


2: this.Invoke(new Action(() => { TextBox2.Text = “1”; })); 这段c#代码如何转成vb.net代码? 3: 如果需要用到跨线程刷新UI,怎么设计比较能平衡性能和效果的关系?
跨线程刷UI,使用委托
有时想起 2016-03-07
  • 打赏
  • 举报
回复
个人理解: 1:Suspend 和 resume方法容易产生线程死锁。我比较常使用的方法:线程中进来进行if(flag)判断。 flag为 true,进行线程操作 flag false 不执行
失落的神庙 2016-03-07
  • 打赏
  • 举报
回复
while(!tempstop) { ThreadSleep(10); if(stop)break; } if(stop)break; 是我这样子用的。 stop停止 tempstop 暂停。

110,553

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧