无论如何都要按名称或其他任何来源睡觉一些特定的 thread
如果我有两个线程
Thread call = new Thread(() => open_page(txtbx_1.Text));
call.Start();
Thread call_2nd = new Thread(() => open_page(txtbx_1.Text));
call_2nd.Start();
我想睡眠call
和call_2nd
至少15分钟(但不想sleep
主Thread
。
由于
答案 0 :(得分:3)
不 - 你不能要求另一个线程睡觉。除了其他任何事情,当你想要它睡觉时,它可能会持有锁或其他资源,这些资源在睡觉时确实不应该被保留。
你必须合作完成这项工作,线程之间有某种共享数据,表明你想睡觉的时间和持续时间。或者,将计时器安排为仅在一段时间后启动相关活动。
答案 1 :(得分:0)
是,但方式与您想象的不同。
让您要定期睡觉的目标线程检查手动重置事件。每当目标线程应该休眠时,控制线程清除该事件(标志),否则它总是被设置。如果希望目标线程只休眠一段时间,请将该值用作等待超时。
如果需要检查目标线程是否处于等待状态,请考虑另一个事件/标志/计数器,由目标线程设置,并由控制线程读取。
答案 2 :(得分:0)
为什么你想要一个线程进入睡眠状态,除非它本来会做一些你不希望它做的事情?为什么你会编写一个线程来做你不想做的事情?
如果您提出这个问题,那么在您的设计或实施中某些地方就会出现问题。