多线程计算Pi

多线程计算Pi

ID:44172096

大小:200.96 KB

页数:7页

时间:2019-10-19

多线程计算Pi_第1页
多线程计算Pi_第2页
多线程计算Pi_第3页
多线程计算Pi_第4页
多线程计算Pi_第5页
资源描述:

《多线程计算Pi》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、西南交通大学操作系统实验OperationSystemExperiment(课程代码0474012)实验地点:X7105实验学期:大二下学期实验名称:多线程计算Pi值学生班级:2014级软件一班学生学号:2014112128学生姓名:蒋妮妮任课教师:胡晓鹏信息科学与技术学院多线程计算Pi值实验目的先接收用户输入的精度来控制pi值小数点后的位数。在主函数中创建线程myThread,并将委派ThreadStart所封装的方法定义为函数piMain()。再通过对线程的暂停、继续、终止来控制pi值得输出位数,并了解线程的工作过程。实验内容边计算边输出,主线程与计算Pi

2、的线程要进行通信,(线程交互)更新进行输出到界面,主线程控制UI的逻辑,进行更新数据(串行化),互斥,计算线程只进行计算。实验代码usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents;usingSystem.Windows.Input;usingSyste

3、m.Windows.Media;usingSystem.Windows.Media.Imaging;usingSystem.Windows.Navigation;usingSystem.Windows.Shapes;usingSystem.Threading;usingSystem.Windows.Threading;namespaceCalculatePi{///

///MainWindow.xaml的交互逻辑///publicpartialclassMainWindow:Window{privateintprecisio

4、n;privateintcount;privateThreadPiThread;privatedelegatevoidMyDelegate();privatedoubleCharge;publicMainWindow(){InitializeComponent();count=0;}privatevoidWindow_Loaded(objectsender,RoutedEventArgse){}privatevoidbtnStart_Click(objectsender,RoutedEventArgse){if(btnStart.IsEnabled==true

5、)btnStart.IsEnabled=false;if(this.InputBox.Text==""){MessageBox.Show("您还没有输入精度!","提示");btnStart.IsEnabled=true;}else{precision=int.Parse(this.InputBox.Text);//将输入的数字类型字符串转换为intbtnPause.IsEnabled=true;btnStop.IsEnabled=true;GetThread();this.ResultBox.Select(0,this.ResultBox.Text.Leng

6、th);}}privatevoidbtnPause_Click(objectsender,RoutedEventArgse){if((string)btnPause.Content=="暂停"){btnPause.Content="继续";PiThread.Suspend();btnStop.IsEnabled=true;btnPause.IsEnabled=true;btnStart.IsEnabled=false;btnReturn.IsEnabled=true;}else{btnPause.Content="暂停";PiThread.Resume();b

7、tnPause.IsEnabled=true;btnStart.IsEnabled=false;btnStop.IsEnabled=true;btnReturn.IsEnabled=true;this.ResultBox.Select(0,this.ResultBox.Text.Length);}}privatevoidGetThread(){PiThread=newThread(newThreadStart(thread));PiThread.SetApartmentState(ApartmentState.STA);//设置到主应用程序的单元状态PiThr

8、ead.IsBackground=tr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。