ThreadPoolDispatcher.cs
19 lines
| 532 B
| text/x-csharp
|
CSharpLexer
cin
|
r248 | using System; | |
using System.Threading; | |||
namespace Implab.Parallels { | |||
public class ThreadPoolDispatcher : IDispatcher { | |||
public static ThreadPoolDispatcher Instance { get; private set; } = new ThreadPoolDispatcher(); | |||
private ThreadPoolDispatcher() { | |||
} | |||
public void Enqueue(Action job) { | |||
ThreadPool.QueueUserWorkItem((o) => job(), null); | |||
} | |||
public void Enqueue<T>(Action<T> job, T arg) { | |||
ThreadPool.QueueUserWorkItem((o) => job((T)o), arg); | |||
} | |||
} | |||
} |