【操作系统】线程与进程的操作(C#)

08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205


线程与进程

通过查阅MSDN中C#关于Process类和Thread类的内容设计如下要求的一段程序:

在程序中打开两个后台线程(background=false),分别控制两个Process类,用这两个类分别循环打开和关闭相应进程,并在前台面板中记录相应的信息

比如:打开两个后台线程A和B,在A线程中实例化一个Process类Pa,在B线程中实例化一个Process类Pb。然后两个线程同时进入循环分别做如下操作:

用Pa打开记事本程序,并记录记事本进程的所有可显示信息,然后关闭并记录信息,再打开记事本程序,并记录记事本进程的所有可显示信息,然后关闭并记录信息。。。。。。。。。。(做成死循环)记录你所控制的进程的创建,运行,结束时的全部时间及PCB信息

用Pb打开计算器程序,并记录记事本进程的所有可显示信息,然后关闭并记录信息,再打开记事本程序,并记录记事本进程的所有可显示信息,然后关闭并记录信息。。。。。。。。。。(做成死循环)记录你所控制的进程的创建,运行,结束时的全部时间及PCB信息

附:前台窗体名称为你的姓名与学号,所控制的程序不局限为记事本和计算器,在完成基本内容的基础上对程序作出功能修改的可加分

【实验步骤】

1.查阅MSDN中C#关于Process类和Thread类

MSDN中有Process类详尽的解释及属性方法介绍,并有实例(Thread相对简陋些),此处不再赘述。

Process组件提供了对运行在计算机上进程的访问。

进程是一个运行的应用程序,或者说是一个容器,应用程序运行后,就相当于将应用程序装进容器(还可以装载变量数据,引用的DLL文件等)。线程是操作系统向进程分配处理器时间的基本单位。线程可执行进程的任何代码,包括当前由另一线程执行的部分。如启动、停止、监视应用程序等。

2.创建后台线程A, 实例化一个Process类Pa,循环打开关闭记事本,并记录信息

Thread A;
A = new Thread(new ThreadStart(exeNotepad));
            A.IsBackground = true; 
            A.Start();

//声明一个委托,用以解决控件绑定到特定线程抛出的InvalidOperationException异常
delegate void setRtbHandler(string s);
private void setRtb(string s)
{
  tabPage2.Controls[0].Text += s;
}


/// <summary>
///循环打开、关闭记事本程序的进程¬
/// </summary>
private void exeNotepad()
{
  Process Pa;
  try
  {
    int i = 1;
    while (true)
    {
       /打开并关闭记事本程序
       Pa = Process.Start("Notepad");
        //
       sA= "第" + i + "次打开记事本程序" + "\n";
       sA= printProcessInfo(Pa) + "\n" + &#
  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值