押宝输惨了,真的没分了,厚脸低分求个问题,多线程相关 从UI线程创建的子线程,现在子线程中需要根据用户的选择来执行不同的操作,所以如何让子线程暂停下来并等用户选择后把选择的值传入子线程因为子线程中需要的这个值要在子线程中才能确认能给用户选择什么,所以没法在线程启动前让用户选择 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用户操作UI改变某个全局值,这是前提操作。假设这个一定会发生可以这样。UI的相关代码中插入:Thread td = new Thread(new ThreadStart(sth()));td.Start();private void sth(){ while(true) { //查询UI的某个变量 if(someVar Within Condition)//伪代码,仅为了描述这个问题 { break; } sleep(500); //降低CPU占用时间 } //TODO:你要做的下一步事情} Thread.Resume()过时了,难道只能用2楼这种轮询的方式来进行了吗 子线程使用Monitor.Wait方法,主线程使用Monitor.Pulse方法。 轮询的方法效率很低的可以创建一个全局ManualResetEvent对象,在需要停下来等待的地方执行WaitOne,然后该线程被阻塞。另外一个合适的地方执行Set,然后被阻塞的线程就能够继续执行了。 用 AutoResetEvent试试看, 也是waitone和set 想请教个问题C# 请C#高手帮忙 动态生成的ComboBox的事件问题。 如何提取出listView控件中的内容? 如何筛选表格的数据? 关于C# CRC-CCITT码 各位大虾来抢分吧 如何写一个类似于windows任务栏的东西,愿倾分相求 winform中导入导出数据速度很慢,怎么解决啊,excel《=》sql 对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。 请问?? c#链接数据库问题 什么是架构?
Thread td = new Thread(new ThreadStart(sth()));
td.Start();private void sth()
{
while(true)
{
//查询UI的某个变量
if(someVar Within Condition)//伪代码,仅为了描述这个问题
{
break;
}
sleep(500); //降低CPU占用时间
}
//TODO:你要做的下一步事情
}
另外一个合适的地方执行Set,然后被阻塞的线程就能够继续执行了。