private void CheckCpuThreadId()
{
if(Thread.CurrentThread != cpuThread)
{
throw new ArgumentException(
string.Format("Method called from a wrong thread. Expected {0}, but got {1}",
cpuThread.ManagedThreadId, Thread.CurrentThread.ManagedThreadId));
}
}