这个只有一条线程来执行
TaskQueue
01 Syntax
Microsoft.VisualBasic.Parallel.Tasks.TaskQueue`1
02 Methods
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| Tasks | 1 | 返回当前的任务池之中的任务数量 |
| RunningTask | 1 | 当这个属性为False的时候说明没有任务在执行,此时为空闲状态 |
| uid | 1 | the unique name of current task |
| MaximumQueue | 1 |
04 Fields
05 Members
#ctor(
String, Int32, Action(Of String, Exception))会单独启动一条新的线程来用来执行任务队列
Join(
Func(Of TaskWorker, `0))函数会被插入一个队列之中,之后线程会被阻塞在这里直到函数执行完毕,这个主要是用来控制服务器上面的任务并发的 一般情况下不会使用这个方法,这个方法主要是控制服务器资源的利用程序的,当线程处于忙碌的状态的时候, 当前线程会被一直阻塞,直到线程空闲
Parameters
| Name | Type | Description |
|---|---|---|
handle | Func(Of TaskWorker, `0) | - |
Returns
假若本对象已经开始Dispose了,则为完成的任务都会返回Nothing
Enqueue(
Func(Of TaskWorker, `0), Action(Of `0), String)这个函数只会任务添加到队列之中,而不会阻塞线程
Parameters
| Name | Type | Description |
|---|---|---|
handle | Func(Of TaskWorker, `0) | - |
__taskQueueEXEC
有一条线程单独执行这个任务队列
Tasks
返回当前的任务池之中的任务数量
RunningTask
当这个属性为False的时候说明没有任务在执行,此时为空闲状态
uid
the unique name of current task
__tasks
2018-1-27
如果直接在这里使用App.BufferSize的话,极端的情况下会导致服务器的内存直接被耗尽 所以在这里使用一个较小的常数值
task_name
the name of the task is running
MaximumQueue
ToString()
Enqueue(
ITaskHandle(Of T), Action(Of T))Dispose()