2017-07-11 9 views
-1

toolboxから取得したタイマーにbackgroundworkerを実行できますか? Taskクラスは、例えば、タイマに呼び出すことができるのと同じように:タイマーでbackgroundworkerを実行する方法

private void elapsed_time(object sender, Eventargs e) 
{ 
    Task test = new Task(()=>method()); 
    test.Start(); 
} 

は多分これはかなりばかな質問ですが、私はちょうど知ってしようとしています。私はインターネット上で研究しましたが、直接的な答えはありませんでした。どうもありがとうございます。

+0

「タスクテスト」を意味しましたか?コンストラクタは間違っているようです! – praty

+0

ありがとうございます。しかし、もし私がbackgroundWorker.RunWorkerAsync()を落とすだけで大丈夫かどうか疑問に思っていた。タイマーで? – 19GreenBlankets

+0

_ "タイマーでbackgroundWorker.RunWorkerAsync();だけを落とすと大丈夫ですか?" _ - 試したときに何が起こったのですか? _Did_あなたはそれを試してみませんか?そうでない場合は、なぜあなたはそれを知っている可能性があるときにStack Overflow投稿を書くのに時間を費やしていますか?タイマーコールバック/イベントハンドラで必要なコードを実行することができない根本的な理由はありませんが、特定のコードに対して、その特定のシナリオでは機能しない特別な理由があるかもしれません。あなたが関連するすべての詳細を共有しておらず、その質問に答える他の人がなぜ必要なのかを説明しても、良い答えを出すことはできません。 –

答えて

1

あなたの質問がすべてのティックでバックグラウンドワーカーを作成することを意味するのかどうかはほとんど分かりません。しかし、それがあなたが探しているものなら、私はそれが可能だと思います!私はまだこのコードを試みたが、ちょうどそれがうまくいくかもしれない推測していない:

private void elapsed_time(object sender, Eventargs e) 
{ 
    System.ComponentModel.BackgroundWorker worker = new System.ComponentModel.BackgroundWorker(); 

    worker.DoWork += NewBackgroundWork_Start; 
    worker.RunWorkerCompleted += NewWork_Completed; 
    worker.RunWorkerAsync(); 
} 

private void NewBackgroundWork_Start(object sender, System.ComponentModel.DoWorkEventArgs e) 
{ 
    Console.Writeline("I am the new job"); 
} 

private void NewWork_Completed(object sender, System.ComponentModel.DoWorkEventArgs e) 
{ 
    Console.Writeline("The job is complete"); 
} 
+0

ありがとう、私はこれを試してみましょう! – 19GreenBlankets

1

あなたはTimerクラスに関するMSDNの記事をお読みください。 の例では、正確に何をしたいんれ、あります:ちょうどツールボックスからタイマーをドラッグアンドドロップ

https://msdn.microsoft.com/en-us/library/system.timers.timer(v=vs.110).aspx#Examples

は十分ではありません。

タイマーには、メソッドをバインドできるイベントElapsedがあります。タイマーがオフになると実行されます。
ドキュメント内でどのように動作するかを確認することをお勧めします。https://msdn.microsoft.com/en-us/library/system.timers.timer.elapsed(v=vs.110).aspx

関連する問題