私は、Visual Studio 2013でMFCプログラムを書いていますし、私は2つの次のエラーエラー:C2893 '関数テンプレート特化に失敗しました。' 'のstd ::の起動'
Error C2893 Failed to specialize function template 'unknown-type std::invoke(_Callable &&,_Types &&...)'
と
を得続けますError C2672 'std::invoke': no matching overloaded function found
エラーがxthreadライン238
をファイルに関連している私は、C++/MFCでかなり新しいですし、私はシステム時間のバックグラウンドで実行される関数を記述しようとしています。
これは私が使用していたコードされています。その後、時間を開始するには、ボタンを押すに
void task1(ExperimentTab& dlg)
{
while (true)
{
CString showtime = CTime::GetCurrentTime().Format("%H:%M:%S");
int x = dlg.m_showTime.GetWindowTextLengthA();
dlg.m_showTime.SetWindowTextA(_T(""));
dlg.m_showTime.ReplaceSel(showtime, 0);
}
}
void mainThread()
{
std::thread t1(task1);
t1.join();
}
これと呼ばれているが、同じボタンにも時間を停止するために使用されます。
ここでマルチスレッド化することはほとんどありません。タイマーを使用してください([CWnd :: SetTimer](https://msdn.microsoft.com/en-us/library/49313fdf.aspx)を参照)、すべてを単一のスレッドに保ちます。追加ボーナス:現在の時刻を更新するだけで、CPUコア全体を焼き付けることはありません。そして、あなたは実際には、タスクマネージャーに行くことなく、あなたのプロセスを閉じることができます。 – IInspectable