タグ付けされた質問 「task」

タスクは、並行性を処理するために使用される抽象概念であり、プログラムの残りの部分と同時に実行される操作を表すことができます。タスクは、Adaでの同時実行スレッドであり、.NETでの非同期操作を表します。これは、Javaのスレッドにも対応しています。

11
待機せずにC#で非同期メソッドを安全に呼び出す方法
私が持っているasyncデータを返さないメソッドを: public async Task MyAsyncMethod() { // do some stuff async, don't return any data } データを返す別のメソッドからこれを呼び出しています: public string GetStringData() { MyAsyncMethod(); // this generates a warning and swallows exceptions return "hello world"; } 待機MyAsyncMethod()せずに呼び出すと、Visual Studioで「この呼び出しは待機されないため、現在のメソッドは呼び出しが完了する前に引き続き実行されます」という警告が表示されます。その警告のページには、次のように記載されています。 非同期呼び出しの完了を待たず、呼び出されたメソッドが例外を発生させないことが確実な場合にのみ、警告を抑制することを検討する必要があります。 通話が完了するのを待ちたくないと思います。する必要も時間もありません。しかし、呼び出しがあります例外を発生させます。 私はこの問題に何度か遭遇しましたが、それは共通の解決策が必要な共通の問題であると確信しています。 結果を待たずに非同期メソッドを安全に呼び出すにはどうすればよいですか? 更新: 私が結果を待つことを示唆している人々のために、これは私たちのWebサービス(ASP.NET Web API)上のWebリクエストに応答しているコードです。UIコンテキストで待機すると、UIスレッドは解放されたままになりますが、Web要求の呼び出しで待機すると、要求に応答する前にタスクが完了するのを待機するため、理由もなく応答時間が長くなります。

2
Task.Runを正しく使用し、async-awaitを使用する場合
使用する際の正しいアーキテクチャーについて、ご意見をお聞かせくださいTask.Run。WPF .NET 4.5アプリケーション(Caliburn Microフレームワークを使用)でUIが遅くなっています。 基本的に私はやっています(非常に単純化されたコードスニペット): public class PageViewModel : IHandle<SomeMessage> { ... public async void Handle(SomeMessage message) { ShowLoadingAnimation(); // Makes UI very laggy, but still not dead await this.contentLoader.LoadContentAsync(); HideLoadingAnimation(); } } public class ContentLoader { public async Task LoadContentAsync() { await DoCpuBoundWorkAsync(); await DoIoBoundWorkAsync(); await DoCpuBoundWorkAsync(); // I …

6
RailsレーキタスクはActiveRecordモデルへのアクセスを提供しますか?
カスタムのrakeタスクを作成しようとしていますが、モデルにアクセスできないようです。これは暗黙のうちにrailsタスクに含まれているものだと思いました。 lib / tasks / test.rakeに次のコードがあります。 namespace :test do task :new_task do puts Parent.all.inspect end end そして、これが私の親モデルがどのように見えるかです: class Parent < ActiveRecord::Base has_many :children end これはかなり単純な例ですが、次のエラーが発生します。 /> rake test:new_task (in /Users/arash/Documents/dev/soft_deletes) rake aborted! uninitialized constant Parent (See full trace by running task with --trace) 何か案は?ありがとう

5
UIスレッドでのタスクの継続
最初のタスクが作成されたスレッドでタスクの継続を実行するように指定する「標準」の方法はありますか? 現在、私は以下のコードを持っています-それは機能していますが、ディスパッチャーを追跡し、2番目のアクションを作成することは、不要なオーバーヘッドのように思えます。 dispatcher = Dispatcher.CurrentDispatcher; Task task = Task.Factory.StartNew(() => { DoLongRunningWork(); }); Task UITask= task.ContinueWith(() => { dispatcher.Invoke(new Action(() => { this.TextBlock1.Text = "Complete"; } });
214 c#  .net  wpf  multithreading  task 


6
C#でのTask.FromResult <TResult>の用途は何ですか
C#およびTPL(Task Parallel Library)では、TaskクラスはT型の値を生成する進行中の作業を表します。 Task.FromResultメソッドの必要性は何ですか? つまり、すでに生成された値を手元に持っているシナリオで、それをタスクにラップする必要性は何ですか? 頭に浮かぶのは、Taskインスタンスを受け入れる他のメソッドのアダプターとして使用されることだけです。


15
PHPタスクを非同期で実行する
私はやや大規模なWebアプリケーションで作業しており、バックエンドのほとんどはPHPです。コードのいくつかのタスクを完了する必要がある場所がいくつかありますが、ユーザーに結果を待たせたくありません。たとえば、新しいアカウントを作成するときに、ウェルカムメールを送信する必要があります。しかし、「登録の完了」ボタンを押したときに、実際にメールが送信されるまで待たせたくありません。プロセスを開始して、すぐにユーザーにメッセージを返したいだけです。 今までのところ、私はexec()を使ってハックのように感じるものを使用しています。基本的に次のようなことをしています: exec("doTask.php $arg1 $arg2 $arg3 &gt;/dev/null 2&gt;&amp;1 &amp;"); うまくいくようですが、もっと良い方法があるかどうか疑問に思っています。MySQLテーブルのタスクをキューに入れるシステムと、そのテーブルに1秒に1回クエリを実行し、見つかった新しいタスクを実行する別の長時間実行PHPスクリプトを書くことを検討しています。これには、将来、必要に応じてタスクを複数のワーカーマシンに分割できるという利点もあります。 車輪を再発明していますか?exec()ハックやMySQLキューより良い解決策はありますか?

5
「待つ」は機能しますが、タスクを呼び出します。結果がハング/デッドロックします。
次の4つのテストがあり、最後のテストを実行するとハングします。なぜこれが起こるのですか? [Test] public void CheckOnceResultTest() { Assert.IsTrue(CheckStatus().Result); } [Test] public async void CheckOnceAwaitTest() { Assert.IsTrue(await CheckStatus()); } [Test] public async void CheckStatusTwiceAwaitTest() { Assert.IsTrue(await CheckStatus()); Assert.IsTrue(await CheckStatus()); } [Test] public async void CheckStatusTwiceResultTest() { Assert.IsTrue(CheckStatus().Result); // This hangs Assert.IsTrue(await CheckStatus()); } private async Task&lt;bool&gt; CheckStatus() { var restClient = new …
126 c#  nunit  task  deadlock  async-await 

5
EclipseでTODO / FIXME / XXXタスクタグを有効にするにはどうすればよいですか?
私がEclipseを使用してきた長年、TODO / FIXME / XXXコメントタグがタスクリストに表示されることになっていることを今まで知りませんでした。どうやらこれは、Eclipseを使用している限りこれらのタグを使用していて、そのうちの1つがタスクリストに表示されたことがないため、デフォルトでは無効になっているようです。誰でもこの機能を有効にする方法を示すことができますか?「ソースコードタグをタスクリストに表示させる」の効果を表す設定オプションはどこにもありません。それが存在すればそれは素晴らしい機能でしょうが、私は疑い始めています。 私は周りに尋ねました、そして他の人が私に提案したように、これらは明らかに効果がないいくつかのことですが、とにかく私は試しました: Eclipseの最新バージョンへのアップグレード。 Eclipseを再起動します。 タスクリストを閉じて再度開きます。 プロジェクトを更新しています。 私が使用しているのは 、Web開発者向けのEclipse Java EE IDEです。 バージョン:Heliosサービスリリース1 ビルドID:20100917-0705
121 eclipse  tags  task 

2
awaitとContinueWithの違い
場合誰かが説明できawaitそしてContinueWith次の例では同義かではありません。私は初めてTPLを使用しようとしていますが、すべてのドキュメントを読んでいますが、違いがわかりません。 待ってください: String webText = await getWebPage(uri); await parseData(webText); ContinueWith: Task&lt;String&gt; webText = new Task&lt;String&gt;(() =&gt; getWebPage(uri)); Task continue = webText.ContinueWith((task) =&gt; parseData(task.Result)); webText.Start(); continue.Wait(); 特定の状況では、どちらが優先されますか?

2
task.Resultと同じ完了したタスクを待ちます。
私は現在、Stephen Clearyの「C#クックブックの並行性」を読んでおり、次のテクニックに気づきました。 var completedTask = await Task.WhenAny(downloadTask, timeoutTask); if (completedTask == timeoutTask) return null; return await downloadTask; downloadTaskへの呼び出しでhttpclient.GetStringAsync、timeoutTask実行中Task.Delayです。 タイムアウトしなかった場合downloadTaskは、すでに完了しています。downloadTask.Resultタスクがすでに完了している場合、を返すのではなく、2回目の待機を行う必要があるのはなぜですか?

7
タイマーとタイマータスクとスレッド+ Javaでのスリープ
ここで同様の質問をしましたが、満足のいく答えがありませんでした。質問をもう一度言い換えると 定期的に(たとえば1分間隔で)実行する必要があるタスクがあります。スリープ付きの無限ループを持つ新しいスレッドを作成するのではなく、Timertask&Timerを使用してこれを行う利点は何ですか? timertask-を使用したコードスニペット TimerTask uploadCheckerTimerTask = new TimerTask(){ public void run() { NewUploadServer.getInstance().checkAndUploadFiles(); } }; Timer uploadCheckerTimer = new Timer(true); uploadCheckerTimer.scheduleAtFixedRate(uploadCheckerTimerTask, 0, 60 * 1000); スレッドとスリープを使用したコードスニペット Thread t = new Thread(){ public void run() { while(true) { NewUploadServer.getInstance().checkAndUploadFiles(); Thread.sleep(60 * 1000); } } }; t.start(); ロジックの実行にインターバル時間以上かかる場合でも、特定のサイクルを見逃しても心配する必要はありません。 これについてコメントしてください。 更新: 最近、TimerとThread.sleep()の使用に別の違いが見つかりました。現在のシステム時刻が午前11:00であるとします。なんらかの理由でシステム時間を10:00 AMにロールバックすると、Timerは11:00 …
102 java  timer  while-loop  sleep  task 


3
タスクの待機は、タスクで待機することも、Exceptionプロパティにアクセスすることもできませんでした。その結果、観察されなかった例外は
これは何を意味し、どのように解決しますか? TPLタスクを使用しています。 エラー全体 タスクの待機は、タスクで待機することも、Exceptionプロパティにアクセスすることもできませんでした。その結果、監視されていない例外がファイナライザスレッドによって再スローされました。 System.Threading.Tasks.TaskExceptionHolder.Finalize()で mscorlib

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.