C#の遅延関数の使用
2022-02-08 12:39:01
スレッドで遅延させる必要がある場合、Sleep()関数を使用しないようにしてください。これは、タイムスライスを他のスレッドに切り替えてしまうことになります。
以下の関数を使用してください。
//Delay function
public static void Delay(int milliSecond)
{
int start = Environment.TickCount;
while (Math.Abs(Environment.TickCount - start) < milliSecond)
milliSecond) {
Application.DoEvents();
}
}
あるいは
//Delay us Create a waitable timer
[DllImport("kernel32.dll")]
public static extern int CreateWaitableTimer(int lpTimerAttributes,
bool bManualReset, int lpTimerName);
public static void UsDelay(int us)
{
long duetime = -10 * us;
int hWaitTimer = CreateWaitableTimer(NULL, true, NULL);
SetWaitableTimer(hWaitTimer, ref duetime, 0, NULL, NULL, false);
while (MsgWaitForMultipleObjects(1, ref hWaitTimer, false, Timeout.Infinite,
Infinite, QS_TIMER)) ;
CloseHandle(hWaitTimer);
}
関連
-
C# string.format でのエラー: 入力文字列が正しい形式でない
-
C# indexof() の使用法
-
エラーです。コレクションが変更されました。列挙操作が実行されない可能性があります。
-
VS エラー LNK2005:**already defined in **.obj
-
不正なフォーマットでプログラムを読み込もうとした場合の問題を解決します。
-
このリソースにアクセスするには完全な認証が必要です Unauthorized
-
C#のビルドコードで、すべてのコードパスが値を返さないエラーが発生する
-
エラーです。名前 'Encoding' は現在のコンテキストに存在しない ソリューション
-
ASP.NET URL変更によるページ受け渡し
-
AppDomainとAssemblyの動的なロードとアンロード
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
c# - デシリアライズ・エラー。入力文字列が正しい形式でない
-
C#高精度遅延コード実行時間(us/ns)
-
C#の面接質問100選(.net開発者必見)
-
C#でUSBデバイスを操作する方法
-
Unityがエラーを報告します。コレクションが変更されました。列挙操作が実行されない可能性があります。
-
HTTP エラー 500.22 - 内部サーバー エラー-IIS7 Asp.net2.0 ウェブサイトの実行ソリューションに失敗しました。
-
インデックスが配列の範囲外であった。
-
vs2010 can't debug, can't enter breakpoint, breakpoint is invalid.
-
System.InvalidOperationException: ConnectionString プロパティが初期化されていません。
-
C# データベース操作エラー。この接続に関連付けられた開いているDataReaderがすでにあり、これを閉じる必要があります...