|
|
1
6
当调用者和线程方法共享一个变量时,您已经可以访问它了-一旦线程完成,您只需检查
当然,您必须知道线程方法何时完成,这样才有用。在底部,有两种方法可以做到这一点:
|
|
|
2
5
我无法重新创建您的问题,我有相同的代码,并且看到了预期的结果。如果您只想睡眠当前线程直到它完成,那么您可以在该线程上调用.join(),然后等待确定它已经执行完毕。
|
|
|
3
2
从线程返回值的一种可能方法是使用上下文类作为参数对象。它还可以用于传递参数和检索结果。 另一方面,如果您可以使用BackgroundWorker类,那么它已经有了一个专用的result对象——其工作方式相同。但BackgroundWorker不能用于某些目的(例如,它不支持STA公寓状态)。 记住,在线程完成之前,不应该从ctx.result中读取(即t.isalive==false)。
|
|
|
4
1
可以使用委托回调从线程函数中检索数据。委托可以充当线程和调用方之间的桥梁。例如:
|
|
|
5
0
看看 Asynchronous Programming Model . 在模型描述的一个常见模式中,类将公开beginxxx和endxxx方法。前者启动异步操作并返回IAsyncResult对象。后者接受iasyncresult对象作为参数,阻止调用线程,直到操作完成并返回所需的值。 |
|
|
user107586 · 如何处理等待句柄不会导致无限循环? 1 年前 |
|
|
ron burgundy · 获取-释放语义是否跨线程传递?[副本] 1 年前 |
|
|
BenjiFB · C#内存缓存:在一次操作中追加到列表? 1 年前 |
|
|
András Takács · Python多线程问题 1 年前 |
|
|
András Takács · Python多线程错误 1 年前 |