- C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
920 :デフォルトの名無しさん[sage]:2017/10/15(日) 13:55:30.87 ID:XWjA+gHr - staticタスクをwhileでずっと回してデータリストのデータを監視しててエラーがあったら注意喚起のフォームを開いたりフォームのラベルを変更したりしたいんだけど
staticだからタスクからインヴォーク使えないし、メインフォームに作ったフォーム開いたりするメソッドをデリゲートしようとしても静的フィールド〜でできなくて詰まった・・・ 設計見直したほうがいいレベル?
|
- C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
925 :デフォルトの名無しさん[sage]:2017/10/15(日) 14:46:56.01 ID:XWjA+gHr - □メインフォーム
データリストを保持してる 一定間隔でデータリストをデータベースから取ってきて更新する □バックグラウンドタスク メインフォームのコンストラクタで起動する メインフォームを閉じるまでwhileで動き続ける メインフォームのデータリストに異常値を見つけたら注意喚起フォームを開く □注意喚起フォーム データが異常値だから直せ〜のメッセージが表示してある オーナーはメインフォーム バックグラウンドタスクのメソッド上で注意喚起フォームを普通に開こうとしたらクロススレッド〜で開けない タスク上にインヴォークを記述するのはタスクがスタティックだから使えない フォームを開く処理をメインフォームに書いてタスクにデリゲート処理を記述するのもタスクがスタティックだから静的なフィールド〜でできない メインフォームはスタティックじゃないけど作りの問題でタスク側でnewするわけにはいかない どうやってタスクからイベントを投げてメインフォームでハンドルすればいいか教えてください >>922 これで理解できる?
|
- C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
928 :デフォルトの名無しさん[sage]:2017/10/15(日) 15:10:29.08 ID:XWjA+gHr - static修飾子知らないってマジモンの素人やん
そら説明しても理解できませんわ >>923 ありがとう ちょっと調べてみる!
|
- C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
936 :デフォルトの名無しさん[sage]:2017/10/15(日) 16:31:43.29 ID:XWjA+gHr - >>930
コンストラクタで起動するのが気持ちわるいのは超同意 でもコンストラクタで立ち上げて常駐する形じゃないとダメー!!!らしいのでしゃーなしでやってる タスクの処理をUIスレッドでawaitして返り値で処理するのを繰り返す形が正解なのは理解してるんだけど >>932 ぶっちゃけボタンかタイマーで起動してawait繰り返せば済むしコードも読みやすいし実装も楽だし拡張性も上がるんだけど 「おじいちゃんはバックグラウンドという言葉が大好き」なのでしょうがない
|