社区
C++ Builder
帖子详情
多线程使用
olivertree
2003-02-04 01:42:11
首先,我祝大家新年快乐!身体健康!
是这样的,在做一些消耗较大的程序时,比如说大量数据导入阿什么的,总是很占用系统资源,运行一下大约都是90%左右,而且在运行时,打开别的窗口,数据导入的窗口就很难打开、界面上的静态控件也显示不出来。所以我想用多线程实现,比如一个用来显示界面;一个用来响应用户突然的中断,另一个才是执行导入的。可是由于我对于多线程并不熟悉,还请大家赐教!
在这里先谢谢大家了!
...全文
77
6
打赏
收藏
多线程使用
首先,我祝大家新年快乐!身体健康! 是这样的,在做一些消耗较大的程序时,比如说大量数据导入阿什么的,总是很占用系统资源,运行一下大约都是90%左右,而且在运行时,打开别的窗口,数据导入的窗口就很难打开、界面上的静态控件也显示不出来。所以我想用多线程实现,比如一个用来显示界面;一个用来响应用户突然的中断,另一个才是执行导入的。可是由于我对于多线程并不熟悉,还请大家赐教! 在这里先谢谢大家了!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qiuafa
2003-05-03
打赏
举报
回复
接分
litvalley
2003-04-25
打赏
举报
回复
UP
watercelery
2003-02-28
打赏
举报
回复
你只要再开1个线程就可以了,你的默认程序会自动开一个,优先级是tpNormal,你只要再开一个优先级比这个低的线程做大数据量的计算,应用程序可以控制这个线程的挂起和唤醒。
这东西不好说,我给你个线程的例子看看吧。
一共有3个一样的CheckBox,每个对应一个Edit控件,该控件中是数字,表示线程的优先级.
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
int x,y;
if(CheckBox1->Checked)
{
x=160;
y=CheckBox1->Top+CheckBox1->Height/2;
//Edit1->Text="2";
if(Ball1==NULL) Ball1=new TSquareThread(clRed,x,y);
Ball1->Resume();
}
else
Ball1->Suspend();
}
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if(Ball1!=NULL)
{
int nPri=StrToInt(Edit1->Text);
switch(nPri)
{
case 2: Ball1->Priority=tpLowest; break;
case 3: Ball1->Priority=tpLower; break;
case 4: Ball1->Priority=tpNormal; break;
case 5: Ball1->Priority=tpHigher; break;
case 6: Ball1->Priority=tpHighest; break;
default: Ball1->Priority=tpNormal;
}
}
}
线程:
void __fastcall TSquareThread::Execute()
{
Step=1;
do
{
x1=x2;
x2=x2+Step;
if(x2<160) Step=1;
else if(x2>(Form1->ClientWidth-15))
Step=-1;
Synchronize(Paint);
}while(!Terminated);
//---- Place thread code here ----
}
//---------------------------------------------------------------------------
__fastcall TSquareThread::TSquareThread(TColor Col,int XPos,int YPos,bool CreateSuspended):TThread(CreateSuspended)
{
EColor=Col;
x2=XPos;
x1=x2;
y=YPos;
}
void __fastcall TSquareThread::Paint()
{
Form1->Canvas->Pen->Color=Form1->Color;
Form1->Canvas->Brush->Color=Form1->Color;
Form1->Canvas->Rectangle(x1-5,y-5,x1+5,y+5);
Form1->Canvas->Pen->Color=EColor;
Form1->Canvas->Brush->Color=EColor;
Form1->Canvas->Rectangle(x2-5,y-5,x2+5,y+5);
}
class TSquareThread ;
class TSquareThread : public TThread
{
private:
TColor EColor;
int x1,x2,y;
long Step;
protected:
void __fastcall Execute();
void __fastcall Paint();
public:
//__fastcall TSquareThread(bool CreateSuspended);
__fastcall TSquareThread::TSquareThread(TColor Col,int XPos,int YPos,bool CreateSuspended);
};
class TForm1 : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TCheckBox *CheckBox1;
TCheckBox *CheckBox2;
TCheckBox *CheckBox3;
TEdit *Edit1;
TEdit *Edit2;
TEdit *Edit3;
void __fastcall CheckBox1Click(TObject *Sender);
void __fastcall Edit1Change(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
void __fastcall CheckBox2Click(TObject *Sender);
void __fastcall Edit2Change(TObject *Sender);
private: // User declarations
TSquareThread *Ball1,*Ball2,*Ball3;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Robin
2003-02-22
打赏
举报
回复
呵呵!关注ing !
halibut
2003-02-22
打赏
举报
回复
up!
lanren_me
2003-02-22
打赏
举报
回复
Synchronize();
WPF
多线程
演示
综上所述,WPF
多线程
演示项目可能涵盖了如何在WPF应用中正确
使用
多线程
、避免阻塞UI、利用BackgroundWorker、Task Parallel Library或异步编程模型来实现后台任务,以及处理线程安全和异常等问题。这些知识点对于...
libevent
多线程
7. **mariotcp参考**:mariotcp可能是一个实现TCP服务器和客户端通信的示例项目,其中可能包含了如何在Libevent框架下
使用
多线程
处理连接请求的实例。 8. **流程图**:链接中的博客文章...
Android
多线程
文件夹下载及断点续传
在Android开发中,进行大文件下载时,为了提高效率并充分利用设备资源,通常会采用
多线程
下载技术。此外,为了提升用户体验,断点续传功能也显得尤为重要,尤其是在网络不稳定或者用户中断下载后,可以从上次停止的...
下载
多线程
编程技术开发资料 高清完整PDF版
9.
多线程
的
使用
场景
多线程
编程广泛应用于服务器端应用、图形用户界面(GUI)、数据库操作以及任何需要处理多任务或提高性能的软件开发中。 10. 并发编程高级话题 随着多核处理器的普及,
多线程
编程领域也衍生出了更...
Java.Concurrency.in.Practice.pdf
- **线程的优点**:接着,作者探讨了
多线程
编程带来的优势,包括提高应用程序响应性、实现更高效的资源利用以及简化复杂任务的处理等。 - **线程的风险**:同时也指出了线程编程可能引入的问题,如死锁、竞态条件、...
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章