Pad*_*ula 2 .net c# multithreading
我正在winform应用程序中阻止收集队列.
在MSDN中,如果没有元素,则说BlockingCollection.Take()方法调用块.1)是否意味着线程将进入线程队列的等待状态?
2)如果是,该线程可以等待多长时间?
3)当一个新元素被添加到集合时,如何自动通知一个线程从等待状态进入就绪状态?
4)处于等待状态的线程的生命周期是什么(只要应用程序正在运行,它是否可用)?
1)是否意味着线程将进入线程队列的等待状态?
调用my_collection.Take()方法的线程将被阻止,直到某个项可用
2)如果是,该线程可以等待多长时间?
Take方法无限期等待.查看源代码.项目可用后,将返回该项目.但是如果集合中没有任何内容,则没有超时,线程将只等待.要传递超时,可以使用重载Take.
3)当一个新元素被添加到集合时,如何自动通知一个线程从等待状态进入就绪状态?
4)该线程的寿命是多少?
这取决于你作为开发人员.您可以根据需要多次阻止和取消阻止线程.一旦你不需要一个线程,只需从它返回控制权.
| 归档时间: |
|
| 查看次数: |
560 次 |
| 最近记录: |