これが私が得ているエラーです:
タイプ 'System.Threading.ThreadStateException' の例外が System.Windows.Forms.dll で発生しましたが、ユーザー コードで処理されませんでした
追加情報: OLE 呼び出しを行う前に、現在のスレッドをシングル スレッド アパートメント (STA) モードに設定する必要があります。Main 関数に STAThreadAttribute がマークされていることを確認します。
内のクリップボードに値を割り当てようとしていますTask
。コードを実行すると、上記のエラーが発生します。
クリップボードのコードは次のとおりです。
static public class ClipBoard
{
static private string _data = string.Empty;
static public Semaphore ClipBoardSemaphore = new Semaphore(1, 1);
static public void SetData(string data)
{
Clipboard.Clear(); //error here
Clipboard.SetDataObject(data, true);
_data = data;
}
static public string GetData()
{
return _data;
}
}
ご覧のとおり、クリップボードがクリアされるとエラーが発生します。Task を呼び出すコードは次のとおりです。
for (int i = 0; i < zom.Count; i++)
{
Task t = Task.Factory.StartNew(zom[i].Process);
t.Wait();
}