メイン スレッドから C# wpf のバックグラウンド スレッドにメッセージを送信しようとしています。
バックグラウンド スレッドは次のとおりです。
public class LoopThread()
{
public void Start()
{
User32.MSG msg;
sbyte ret;
while(true)
{
ret = User32.GetMessage(out msg, IntPtr.Zero, 0, 0);
//Here the debugger never reaches
......
}
}
}
そしてメインスレッド:
LoopThread loop = new LoopThread();
Thread threadLoop = new Thread(loop.Start);
threadLoop.Start();
Thread.Sleep(100);
bool postResult = User32.PostThreadMessage(
Convert.ToUInt32(threadLoop.ManagedThreadId),
WM_USER + 1,
UIntPtr.Zero,
IntPtr.Zero);
しかしpostResult == false
。そしてGetLastWin32Error
戻りますERROR_INVALID_THREAD_ID
。
では、どこが間違っているのでしょうか。