reference: Ctrl::Lock example

git-svn-id: svn://ultimatepp.org/upp/trunk@1191 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2009-05-16 16:50:50 +00:00
parent 142bdd60c3
commit 0724f87d20
3 changed files with 62 additions and 0 deletions

View file

@ -0,0 +1,11 @@
description "This package demonstrates the use of Ctrl::Lock in MT applications\377";
uses
CtrlLib;
file
main.cpp;
mainconfig
"" = "GUI MT";

View file

@ -0,0 +1,4 @@
#ifndef _GuiLock_icpp_init_stub
#define _GuiLock_icpp_init_stub
#include "CtrlLib/init"
#endif

View file

@ -0,0 +1,47 @@
#include <CtrlLib/CtrlLib.h>
using namespace Upp;
struct App : TopWindow {
Thread work;
void Work();
ArrayCtrl list;
typedef App CLASSNAME;
App();
~App();
};
void App::Work()
{
int q = 0;
while(!Thread::IsShutdownThreads()) {
for(int i = 0; i < 100; i++) {
Ctrl::Lock __(list);
list.Set(i, 0, (int64)Random());
}
Sleep(10);
}
}
App::App()
{
list.AddColumn("Test");
Add(list.SizePos());
work.Run(THISBACK(Work));
}
App::~App()
{
Thread::ShutdownThreads();
work.Wait();
}
GUI_APP_MAIN
{
App app;
app.Run();
}