|
using System;
using System.Windows.Forms;
using ThreadBound;
namespace FormsTest
{
public interface IUpdateInterface
{
void NewNumber(int number);
}
[ThreadBound(ThreadBoundAttribute.ThreadBinding.CurrentContext)]
public partial class MainForm :
Form,
IUpdateInterface
{
private ThreadBound.IAsyncCallState callState;
private NumberWorker numWorker;
private NumberWorkerC numWorkerC;
private IUpdateInterface threadBoundUpdater;
public MainForm()
{
InitializeComponent();
numWorker= new NumberWorker();
numWorkerC = new NumberWorkerC();
threadBoundUpdater = this.BindInterfaceToThread<IUpdateInterface>();
numWorker.NewNumber += threadBoundUpdater.NewNumber;
numWorkerC.NewNumber += threadBoundUpdater.NewNumber;
}
private void BtnStart_Click(object sender, EventArgs e)
{
numWorker.CreateNumbers(10, 500);
}
private void BtnCancel_Click(object sender, EventArgs e)
{
numWorker.Cancel();
}
public void NewNumber(int number)
{
LBNumbers.Items.Add(number.ToString());
}
private void BtnDispose_Click(object sender, EventArgs e)
{
numWorker.Dispose();
numWorkerC.Dispose();
}
private void BtnStartState_Click(object sender, EventArgs e)
{
callState = numWorkerC.CreateNumbers(50, 100);
}
private void BtnCancelState_Click(object sender, EventArgs e)
{
if (callState != null)
callState.Cancel();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.