私は同時に、ユーザーが入力したテキストを表示し、同じユーザー入力データのテキストファイルに書き込むプログラムを作成しようとしています。私はTask.Runとコードラップしようとしました:C#でファイルに書き込む方法
private void button_Click(object sender, RoutedEventArgs e)
{
show.Text = inputText.Text;
//Debug.WriteLine(check1_cont.ToString());
//Debug.WriteLine(check2_cont.ToString());
if (check1_cont && check2_cont == true)
{
show2.Text = inputText.Text;
Task.Run(() => File.WriteAllText(@"A:\temp\name.txt", inputText.Text));
}
}
をしかし、私はボタンを押したとき、私は2番目のテキスト(if文では1)の後に、例外エラーが表示されます。
An exception of type 'System.Exception' occurred in normieap.exe but
was not handled in user code
Additional information: The application called an interface that was
marshalled for a different thread. (Exception from HRESULT: 0x8001010E
(RPC_E_WRONG_THREAD))
私はのStreamWriterを使用してみてください:
private void button_Click(object sender, RoutedEventArgs e)
{
show.Text = inputText.Text;
//Debug.WriteLine(check1_cont.ToString());
//Debug.WriteLine(check2_cont.ToString());
if (check1_cont && check2_cont == true)
{
show2.Text = inputText.Text;
using (StreamWriter writer = new StreamWriter(@"A:\temp\name.txt"))
{
writer.WriteLine(inputText.Text);
}
}
}
しかし、私はライン上のエラーを取得:
using (StreamWriter writer = new StreamWriter(@"A:\temp\name.txt"))
'文字列'から 'System.IO.Stream'に '@ "A:\ temp \ name.txt"'を変換できません
通常の方法でラッパーを使用しない場合は、エラー。この問題に対する解決策は非常に高く評価されます。
問題を示すMCVE(http://stackoverflow.com/help/mcve)を提供してください。あなたの例は、( 'show.Text'や' show2.Text'のような)関連性のない情報を導入し、コードのどこかでは使われません。あなたは、手元にある問題に無意味である他のすべての混乱がなければ、あなたがしようとしていることの明確な例を提供する必要があります。 –
ドライブAとBは、ドライブを最初に交換する必要があるフロッピーディスクに使用されます。 –
ドライブAをセカンダリハードディスクに割り当てました。 – Yetoo