このエラーは多くのユーザーに見られますが、私の場合、Visual Studio は文字列オブジェクトを指しているようです。私のコードは次のとおりです。
protected delegate void DPrint_To_LogScreen(string Text, bool NewLine);
protected void Print_To_LogScreen(string Text, bool NewLine)
{
if (InvokeRequired)
Invoke(new DPrint_To_LogScreen(Print_To_LogScreen), new object[] { Text, NewLine }); // exception thrown here from the Text string
else
{
LogScreen.AppendText(Convert.ToString(DateTime.Now) + " -> " + Text + (NewLine ? System.Environment.NewLine : ""));
if (Log_Screen_File == null)
{
Log_Screen_File = new StreamWriter(@"Global.log", true);
Log_Screen_File.WriteLine(Convert.ToString(DateTime.Now) + " -> " + Text);
Log_Screen_File.Close();
}
else
{
lock (Log_Screen_File)
Log_Screen_File.WriteLine(Convert.ToString(DateTime.Now) + " -> " + Text);
}
}
}
私は通常、さまざまな場所やスレッドから関数Print_To_LogScreenを呼び出したいと考えています。
「if (Log_Screen_File == null)」ステートメントが機能することを期待していましたが (一般的には機能します)、invoke コマンドでTextオブジェクトによって例外がスローされました!!
これは可能ですか、それとも Visual Studio は出力ファイルを意味しますか? もしそうなら、なぜ「if (Log_Screen_File == null)」が機能しないのですか?
ありがとうございました