- 1 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:32:45.747
しかもたまにしか起きない
- 2 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:33:15.888 ID:AZX6hkl5d
ログ残そう
- 3 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:33:24.129 ID:yUGGpr+B0
chatGPT先生ならきっと
- 4 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:33:50.539 ID:T8MMb6HX0
並列処理とかしてる?
- 5 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:33:58.992 ID:Sqpnw6pKa
偽物だ
- 7 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:34:43.305 ID:yUGGpr+B0
chatGPT「やる気がないならやめちまえ!」
- 8 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:36:21.140
タイマーで10ms毎に処理
各処理の最初にタイマーを止めて最後にタイマーを再開にしてる
なのにnullチェックの後ろでたまにnull参照エラーになる
- 29 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 16:02:51.043 ID:SzTGJJnF0
>>8
C#のタイマで10msが原因だわ
10msの精度なんかでないから同時にイベント発生する
- 9 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:37:56.541
10じゃなくて100だった
- 10 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:39:51.262 ID:G2KLyxuU0
ビルギットだけころす機械かよー
- 11 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:40:32.377
タイマー停止完了までに次の呼び出しがされたらワンチャンあるか
- 13 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:42:06.107
C#のSystem.Times.Timerっていうのを使ってる
nullチェック対象の変数はタイマー処理内以外では使ってない
- 14 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:43:02.274
参照は他でもしてる
- 15 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:43:36.408
タイマー処理の最後にその変数にはnullを入れてる
- 16 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:43:56.082 ID:eysyRCXL0
バグの原因なんて分からなくていい
解決策だけ分かれば
- 17 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:44:59.772 ID:AZX6hkl5d
ログ出せばデバッグできそうだけど対処としてはMutexかけて排他かな
- 21 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:50:06.024 ID:T8MMb6HX0
シングルスレッド?
それともマルチスレッド?
>>17も言ってるようにとりあえずMutexでロックするのが手っ取り早いのでは
- 19 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:50:03.188 ID:SzTGJJnF0
無理に直そうとするなよ
どんな処理してるのか分からないけど
例外処理入れてnullだったらもう一周すればいいだろ
- 20 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:50:06.041 ID:AZX6hkl5d
ヌルチェックの前でmutex取ってnull後にmutex解放すれば処理中に別のスレッドがnull入れるの回避できるよ
- 22 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:52:18.027 ID:K2PtGWbqr
イベント処理?
タイマーなんて使うなよ
設計が悪いだろそれ
- 24 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:57:24.443
タイマー停止までに次のタイマー処理呼び出しが来たらワンチャンある
- 25 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 15:58:07.466 ID:i+11jItk0
イベント駆動
処理の中で別の処理を呼んでる
タイマー開放してる
- 27 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 16:01:58.999
並行状態になってるときがないかログを取って確かめるか
- 28 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 16:02:31.863
まあ対処だけなら簡単だけど原因を突き詰めたい
仕事でもなんてないし
- 30 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 16:03:19.999
10じゃなくて100のミス
まあ100も短いからワンチャンあるかもしれんよな
取り敢えずログを取るか
- 32 名前:匿名のゴリラ 投稿日時:2022/12/10(土) 16:04:35.572 ID:T8MMb6HX0
調べたけどC#のタイマーって並列で動作するからブロック内の処理が100ms以上かかれば普通に2重で処理行われるっぽいね
コメント一覧