Quantcast
Channel: Windows Forms Data Controls and Databinding forum
Viewing all articles
Browse latest Browse all 2535

CancelRequest not work!

$
0
0
/* This is a blink label user control --------------------------------*/
public partial class BlinkLabel : Label {

private CancellationTokenSource ts;
private Task task1;

public BlinkLabel()
{
   InitializeComponent();
}

public void StartBlink()
{
   ts=new CancellationTokenSource();
   CancellationToken ct = ts.Token;

   if ( isRunningTask(task1) ) return;

   task1 = Task.Factory.StartNew(() =>
   {
       while (true)
       {
           ct.ThrowIfCancellationRequested();
           Thread.Sleep(500);
           Visible = !Visible;

       }
    }, ct);

    task1.ContinueWith(t =>
    {
        Visible = false;

    },TaskContinuationOptions.None);


}

public void StopBlink()
{
    ts.Cancel();
}

}

/* This is a my main form that use blink label user control--------------------------------*/
public partial class MainForm: Form
{
    public MainForm
   {
       InitializeComponent();

       blinkLabel1.Text="Blinking message...";
       blinkLabel1.StartBlink(); //Works
       blinkLabel1.StopBlink();  //Not works - blink not stop.
   }

}

I have some question:

1- why cancel request doesn't work?
2- how we can debug parallel program? when i use Ctrl+F5 the program works, when use F5 invoke errors occured.
3- Does exist better way to create blinkLable user control instead Task?

please get a solution for this problem, i don't have enough experience in parallel programming. thanks/.


Viewing all articles
Browse latest Browse all 2535

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>