欢迎来到天天文库
浏览记录
ID:44172096
大小:200.96 KB
页数:7页
时间:2019-10-19
《多线程计算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
此文档下载收益归作者所有