smart thread pool 【1】简单的使用
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using Amib.Threading;
using System.Threading;
namespace ConsoleApplication1
{
class Program
{
//[STAThread]
static void Main1(string[] args)
{
//stp状态设置
STPStartInfo stp = new STPStartInfo();
stp.DisposeOfStateObjects = true;
stp.CallToPostExecute = CallToPostExecute.Always;
stp.ThreadPriority = ThreadPriority.Highest;
stp.UseCallerCallContext = true;
stp.MaxWorkerThreads = 20;
SmartThreadPool smart = new SmartThreadPool(stp);
//开始
smart.Start();
//这个IWorkItemResult 是个接口,这后面的写法就是接口里面实现的方法么?对c#不是理解呢。。。@。@
//这么用是能明白的。
IWorkItemResult result = smart.QueueWorkItem(delegate(object state)
{
Console.WriteLine("Thread:{0}; State:{1}; Priority: {2}", Thread.CurrentThread.ManagedThreadId, state, Thread.CurrentThread.Priority.ToString());
return DateTime.Now;
}, 123);
Thread.Sleep(1000);
IWorkItemResult result1 = smart.QueueWorkItem(delegate(object state)
{
return DateTime.Now;
}, null);
SmartThreadPool.WaitAll(new IWorkItemResult[] { result,result1 });//等待所有的工作线程的返回
//结果的输出,本以为是线程的交互运行,可是这里是单独运行的哈。
Console.WriteLine(result.Result);
Console.WriteLine(result1.Result);
smart.WaitForIdle();
smart.Shutdown();
Console.ReadLine();
}
}
}网上找了很久,以为很容易找到,可是发现没什么中文文档,最后应该是找到了项目的网站,可是也没能找到标准的API,除了一些DOME的实例。其实线程池的框架也有不少,只不过在这里我用上了STP,其实自己对线程不是太在行的~ 改天继续!