ふらっと C#,C♯,C#(初心者用) Part119 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0892デフォルトの名無しさん
2016/03/26(土) 22:55:52.41ID:2ol6CGld全然別なのか・・ありがとうございます
また別の質問なのですが、Invokeをしたつもりが
「このオブジェクトは別のスレッドに〜」と同じ例外が発生してしまいました
process.ErrorDataReceived += (a, b) => {
Inline inline = new Run(b.Data.Trim());
inline.Foreground = new SolidColorBrush(Colors.Red);
this.Dispatcher.Invoke(() => {
Paragraph paragraph = new Paragraph();
paragraph.Inlines.Add(inline); // ここで例外発生
paragraph.Margin = new Thickness(0, 0, 0, 0);
this.rTextBox.Document.Blocks.Add(paragraph);
});
};
ところが、System.Windows.Documents.RunのインスタンスをInvokeの中で作成すると例外が発生しません。
process.ErrorDataReceived += (a, b) => {
this.Dispatcher.Invoke(() => {
Inline inline = new Run(b.Data.Trim());//この二行をInvokeの中に移動
inline.Foreground = new SolidColorBrush(Colors.Red);
Paragraph paragraph = new Paragraph();
〜略
System.Windows.Documents.Run型をUIスレッドの中で作成しないといけないっぽいのですが
こういう情報はどこで判断すればいいのでしょうか。エラーが出るまで気がつかないのでつらい
■ このスレッドは過去ログ倉庫に格納されています