この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 9355|答える: 5

[出典] [実戦]。 NET/C#はメソッドのタイムアウト時間を設定します

[リンクをコピー]
掲載地 2022/05/04 18:59:51 | | | |
要件:NET/C#メソッドは、サードパーティのプログラムであれば他のプログラム操作を呼び出すためにSystem.Diagnostics.Processを使う必要があります常に反応がないと、常に待機している方法が生まれることがありますサードパーティのプログラムではコマンド入力が必要な場合があり、そのメソッドはどれだけ待っても応答せず、通常通り実行を続けられなくなります。

メソッドのタイムアウト時間を設定する際には、いくつかの点を考慮する必要があります。

  • この方法は期限切れですが、まだ強制される可能性があります
  • タイムアウトが続くとスレッドが埋まりますか? フルメモリー? フルCPUですか?
  • メソッドのタイムアウト、メソッドの実行を優雅に終わらせる方法について


インターネットでタスクタイムアウトに関するコードを見かけましたが、効果は達成されていましたが、タスクは引き続き実行されますこの場合は常にリソースを消費し、プログラムがクラッシュすることがあります。

コードは以下の通りです:



このトピックを振り返り、本記事ではメソッドのタイムアウト時間を設定しますターゲットを絞り、すべての方法に適しているわけではありません参考までに、実際の状況に応じて修正してください。

私たちのメソッドはSystem.Diagnostics.Processを呼び出してサードパーティプログラムを起動し、メソッドがタイムアウトしたら、サードパーティプログラムを終了させるプロセスを終了させたいのです! コードは以下の通りです:


(終わり)





先の:[実戦]。 NET/C#はコマンドライン経由で7zの復式を呼び出します
次に:NginxはHTTPSを使ってSSL証明書を設定しています
掲載地 2022/05/04 23:10:31 |
学ぶことを...
掲載地 2022/10/10 13:12:08 |
学ぶことを...
掲載地 2022/10/10 13:12:50 |
覚えてみろ
掲載地 2022/10/10 13:13:27 |
では、大物の解法を見てみよう へへ
 地主| 掲載地 2022/10/10 17:22:12 |
Task.WaitAsync() API in .NET 6

.NET 6では、タスク完了を非同期で待つために使われる新しいWaitAsyncメソッドが追加されました。非同期待ち時にはタイムアウト時間やキャンセルトークンCancellationTokenを指定することができます。以前のバージョンではタスク完了を待つ同期待機のみがあり、より良いタスクタイムアウトやキャンセルをサポートしていませんでした TimeoutAfter のような拡張機能は、これらの拡張機能を WaitAsync に置き換えることができます

https://andrewlock.net/a-deep-di ... nc-api-in-dotnet-6/
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com