ソースコード
https://github.com/yumetodo/prime_num_searcher
再現方法
- NuGetのパッケージを取得した後バッチビルドですべてのチェックを付けてビルド、
prime_num_sercher_gui.exe
を起動する - 「求める素数の最大値」にすぐに実行が終わらない程度の値(ここでは
80
にした)を入力し「Benchmark」をクリック
3. 下のプログレスバーがいっぱいになる前に⏸をクリック
4. プログレスバーが停止し黄色になる。▶️をクリック
5. プログレスバーが水色に戻り動き始め一杯にになるまで動くもののグラフが更新されない
memo
- 一時停止/再開の実装には
SemaphoreSlim
を利用。
- 再現方法手順
4.
で
https://github.com/yumetodo/prime_num_searcher/blob/f6998d874b3bb8460b120bc86a8df05520b0ed36/prime_num_searcher_gui/MainWindow.xaml.cs#L43-L47
に制御は戻ってきてthis.benchmarkResultManager_.PlotSources
への代入が行われ、
https://github.com/yumetodo/prime_num_searcher/blob/f6998d874b3bb8460b120bc86a8df05520b0ed36/prime_num_searcher_gui/BenchmarkResultManager.cs#L61
のthis.SetProperty
が呼ばれて
https://github.com/yumetodo/prime_num_searcher/blob/f6998d874b3bb8460b120bc86a8df05520b0ed36/prime_num_searcher_gui/ValidatableDataBase.cs#L53
のthis.OnPropertyChanged
は呼び出されている。この時代入するDictionaryは結果がすべて入っている
- 一度も一時停止しない場合は問題ない
- 再度benchmarkを実行して一度も一時停止しない場合も問題ない
質問
OnPropertyChanged
が呼ばれてもグラフが更新されないのは何かがUIをブロックしている気がするのですが、何が原因でしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。