mirror of
https://github.com/farcasclaudiu/SmartThreadPool.git
synced 2026-06-22 11:01:28 +03:00
b30b4abdda
SmartThreadPool v1.0
98 lines
1.7 KiB
C#
98 lines
1.7 KiB
C#
using System;
|
|
using System.Threading;
|
|
|
|
using NUnit.Framework;
|
|
|
|
using Amib.Threading;
|
|
|
|
namespace SmartThreadPoolTests
|
|
{
|
|
/// <summary>
|
|
/// Summary description for TestChainedDelegates.
|
|
/// </summary>
|
|
[TestFixture]
|
|
[Category("TestChainedDelegates")]
|
|
public class TestChainedDelegates
|
|
{
|
|
public TestChainedDelegates()
|
|
{
|
|
}
|
|
|
|
[Test]
|
|
public void GoodCallback()
|
|
{
|
|
SmartThreadPool stp = new SmartThreadPool();
|
|
|
|
stp.QueueWorkItem(new WorkItemCallback(DoWork));
|
|
|
|
stp.WaitForIdle();
|
|
|
|
stp.Shutdown();
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(NotSupportedException))]
|
|
public void ChainedDelegatesCallback()
|
|
{
|
|
SmartThreadPool stp = new SmartThreadPool();
|
|
|
|
WorkItemCallback workItemCallback = new WorkItemCallback(DoWork);
|
|
workItemCallback += new WorkItemCallback(DoWork);
|
|
|
|
stp.QueueWorkItem(workItemCallback);
|
|
|
|
stp.WaitForIdle();
|
|
|
|
stp.Shutdown();
|
|
}
|
|
|
|
[Test]
|
|
public void GoodPostExecute()
|
|
{
|
|
SmartThreadPool stp = new SmartThreadPool();
|
|
|
|
stp.QueueWorkItem(
|
|
new WorkItemCallback(DoWork),
|
|
null,
|
|
new PostExecuteWorkItemCallback(DoPostExecute));
|
|
|
|
stp.WaitForIdle();
|
|
|
|
stp.Shutdown();
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(NotSupportedException))]
|
|
public void ChainedDelegatesPostExecute()
|
|
{
|
|
SmartThreadPool stp = new SmartThreadPool();
|
|
|
|
PostExecuteWorkItemCallback postExecuteWorkItemCallback =
|
|
new PostExecuteWorkItemCallback(DoPostExecute);
|
|
postExecuteWorkItemCallback +=
|
|
new PostExecuteWorkItemCallback(DoPostExecute);
|
|
|
|
stp.QueueWorkItem(
|
|
new WorkItemCallback(DoWork),
|
|
null,
|
|
postExecuteWorkItemCallback);
|
|
|
|
stp.WaitForIdle();
|
|
|
|
stp.Shutdown();
|
|
}
|
|
|
|
|
|
private object DoWork(object state)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
private void DoPostExecute(IWorkItemResult wir)
|
|
{
|
|
}
|
|
|
|
|
|
}
|
|
}
|