PDA

View Full Version : توقف رویداد در حال اجرا



saeedhushmand
سه شنبه 11 مهر 1391, 19:27 عصر
دوستان چه جوری می تونم یک رویداد که در حال اجرا است رو متوقف کنم منظورم اینکه هر موقع کاربر button1 رو زد رویداد در حال اجرا متوقف بشه...

tooraj_azizi_1035
سه شنبه 11 مهر 1391, 20:11 عصر
متوقف کردن یک رویداد در حال اجرا به معنی Cancel کردن اجرای اون هست شما اگه از یه Thread در رویداد استفاده کنی می تونی با CancellationToken اون رو لغو کنی.
اگه چنین چیزی هست تایید کن تا کد قرار بدم.

saeedhushmand
سه شنبه 11 مهر 1391, 20:35 عصر
ایجوری نیست ولی ممنون می شم کمکم کنی اینجوری کنم
یک سوال دیگه وقتی رویداد یک button در حال اجرا است نمی شه کاری کرد که بشه از یک button دیگه استفاده کرد

tooraj_azizi_1035
سه شنبه 11 مهر 1391, 20:41 عصر
بله میشه.

var tokenSource2 = new CancellationTokenSource();
CancellationToken ct = tokenSource2.Token;

var task = Task.Factory.StartNew(() =>
{

// Were we already canceled?
ct.ThrowIfCancellationRequested();

bool moreToDo = true;
while (moreToDo)
{
// Poll on this property if you have to do
// other cleanup before throwing.
if (ct.IsCancellationRequested)
{
// Clean up here, then...
ct.ThrowIfCancellationRequested();
}

}
}, tokenSource2.Token); // Pass same token to StartNew.






داخل دکمه کنسل:


tokenSource2.Cancel();

البته باید این تعاریف رو در خارج از هر دو متد بذاری تا public باشه و هردو ببیننش.



var tokenSource2 = new CancellationTokenSource();
CancellationToken ct = tokenSource2.Token;