[英]C++ Sleep function doesn't work as is expected
我要先在窗口上繪制一個polygon
,然后一秒鍾后刪除該polygon
並改為繪制一個circle
。 我為此編寫了以下代碼:
#include <Simple_window.h>
#include <Graph.h>
using namespace Graph_lib;
//------------------------------------------------------------------------------
int main() {
Simple_window win(Point(100,100),600,400,"lines");
Graph_lib::Polygon poly;
Circle c(Point(100,150), 50);
poly.add(Point(100,100));
poly.add(Point(150,150));
poly.add(Point(50,100));
win.attach(poly);
Sleep(1000);
win.detach(poly);
win.attach(c);
win.wait_for_button();
return 0;
}
但實際上,這種情況不會發生。 實際上,系統僅等待一秒鍾,僅顯示circle (c)
,而不會顯示polygon (poly)
!
請問如何解決問題?
您的主設備內部的調用Sleep函數將凍結應用程序,並徹底重新粉刷/刷新。
要執行您需要執行的操作,您必須使用計時器或用作計時器的線程來放置代碼和管理延遲。
計時器事件中的代碼可能像這樣
您的主設備內部的調用Sleep函數將凍結應用程序,並徹底重新粉刷/刷新。
要執行您需要執行的操作,您必須使用計時器或用作計時器的線程來放置代碼和管理延遲。
您的計時器事件中的代碼可能是這樣的,我知道代碼根本不正確,這是一個跟蹤。
Graph_lib::Polygon poly;
Circle c;
void OnTimerEvent()
{
win.detach(poly);
win.attach(c);
}
int main()
{
c(Point(100,150), 50);
poly.add(Point(100,100));
poly.add(Point(150,150));
poly.add(Point(50,100));
win.attach(poly);
timer.interval = 1000;
timer.enabled = true;
win.wait_for_button();
}
我的意思是,您必須啟動一個計時器,該事件將在1秒后調用,並且可以完成您的工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.