mirror of
https://github.com/farcasclaudiu/SmartThreadPool.git
synced 2026-06-22 13:01:23 +03:00
v2.0
SmartThreadPool v2.0
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Amib.Threading;
|
||||
|
||||
namespace STPExamples
|
||||
{
|
||||
public class MyResource : IDisposable
|
||||
{
|
||||
// ...
|
||||
|
||||
public void DoIt()
|
||||
{
|
||||
//...
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
//...
|
||||
}
|
||||
}
|
||||
|
||||
public class ThreadEventsExample
|
||||
{
|
||||
public static void Main()
|
||||
{
|
||||
|
||||
SmartThreadPool stp = new SmartThreadPool();
|
||||
stp.OnThreadInitialization += new ThreadInitializationHandler(OnInitialization);
|
||||
stp.OnThreadTermination += new ThreadTerminationHandler(OnTermination);
|
||||
|
||||
stp.QueueWorkItem(DoSomeWork);
|
||||
}
|
||||
|
||||
[ThreadStatic]
|
||||
private static MyResource _resource;
|
||||
|
||||
public static void OnInitialization()
|
||||
{
|
||||
// Initialize the resource
|
||||
_resource = new MyResource();
|
||||
}
|
||||
|
||||
private static object DoSomeWork(object state)
|
||||
{
|
||||
// Use the resouce
|
||||
_resource.DoIt();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void OnTermination()
|
||||
{
|
||||
// Do resource cleanup
|
||||
_resource.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user