- ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
255 :デフォルトの名無しさん[sage]:2016/04/28(木) 15:37:42.93 ID:mT51gl12 - すいません・・
Parallel.Forで並列をしてるんですが大量に出力を追加してると 固まってしまいましてこれってどうすれば固まらなくなるのでしょうか? 開始してすぐにアプリが動かなくなるようです。。 再現できるソースを添付しますのでよろしくお願いします。。 int 開始 1000000000; int n=0; var task = Task.Factory.StartNew(() => { Parallel.For(開始,終了 , o, (L) => { n++; this.Invoke(new Action(() => { 追加.Text = n.ToString(
| - ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
256 :デフォルトの名無しさん[sage]:2016/04/28(木) 15:40:35.01 ID:mT51gl12 - >>255です。
すいません・・間違えました。 int 終了 1000000000; int 開始 0; int n=0; var task = Task.Factory.StartNew(() => { Parallel.For(開始,終了 , o, (L) => { n++; this.Invoke(new Action(() => { 追加.Text = n.ToString(""); })); })); }));
| - ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
259 :デフォルトの名無しさん[sage]:2016/04/28(木) 17:54:42.68 ID:mT51gl12 - >>257
レスありがとうございます。 最後にまとめると確かに問題ないのですが状況を知りたいということもあって できればループ中にヒット数を知りたいということがあります;; それ以外にもThread.Sleepを追加してやるとスレッドがUI側に渡るのか動くようになる みたいなんですが速度が変わってしまいました;; 目的なんですが配列に固めた数値をParallelで回して 別のメソッドにその配列を渡してforループし条件に ヒットしたらその配列の数値を出力 してヒット数追加ということをやってます。 候補数が少なければいいのですが多い場合に仰るとおり ビジー状態になってしまうようで困り果ててました;;
| - ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
263 :デフォルトの名無しさん[sage]:2016/04/28(木) 18:45:24.52 ID:mT51gl12 - >>260
レスありがとうございます。 表示更新は別というはどういうことでしょうか? スレッドを立ててそこに表示処理を任せるとかかな・・・ それとも最後にまとめた変数を一気に表示ということでしょうか? >>261-262 レスありがとうございます。 RxのSampleは初めて聞きました!! これって別に秒数を取得できるんですね。 少し勉強してみます。
| - ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
264 :デフォルトの名無しさん[sage]:2016/04/28(木) 20:22:10.53 ID:mT51gl12 - >>262さん
試してみました。固まらず圧倒的なパーフォマンスが出せるようになりまして すごく満足しました。 ありがとうございました。
|
|