• C# Winform应用程序简介


    一 WinForm应用程序简介

    1、winform应用程序是一种智能客户端技术,我们可以使用winform应用程序帮助我们获得信息或者传输信息等。
    2、属性
    Name:在后台要获得前台的控件对象,需要使用Name属性。
    visibile:指示一个控件是否可见。
    Enabled:指示一个控件是否可用。

    3、事件: 发送一件事情。
    注册事件:
    触发事件:

    二 进程

    获得当前程序中正在运行的进程

    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 进程
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                //获得当前程序中所有正在运行的进程
                Process[] pros = Process.GetProcesses();
                foreach(var item in pros)
                {
                    item.Kill();
                    Console.WriteLine(item);
                }
                Console.ReadKey();
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    通过进程打开一些应用程序

     Process.Start("calc");
                Process.Start("mspaint");
                Process.Start("notepad");
                Process.Start("iexplore", "http://www.baidu.com");
    
    • 1
    • 2
    • 3
    • 4

      通过一个进程打开指定的文件

      我们可以把计算机中每个运行的应用程序都当做一个进程。而一个进程又是由多个线程组成的。

      单线程给我们带来的问题。
      ① 让计算机“同时”做多件事情,节约时间。
      ② 多线程可以让一个程序“同时”处理多个事情。
      ③ 后台运行程序,提高程序的运行效率,也不会使主界面出现无响应的情况。
      ④ 获得当前线程和当前进程。

      1 前台线程和后台线程

      前台线程:只有所有的前台线程都关闭才能完成程序关闭。
      后台线程:只要所有的前台现成接收,后台线程自动结束。

      2 产生一个线程的4步骤

      ① 编写产生线程所要执行的方法;
      ②引用System.Threading命名空间;
      ③ 实例化Thread类,并引入一个指向线程所要运行方法的委托。(这时候这个线程已经产生,但是还没有运行)
      ④ 调用Thread实例的Start方法,标记该线程可以被CPU执行,但具体执行时间由CPU决定。

      3 在.NET下,是不允许跨线程的访问。

      4 Thread类的一些重要成员(*)

      ① Start()启动线程(告诉CPU我可以被执行,具体什么时候执行,由CPU决定)。
      Abort()终止线程 终止完成之后不能再Start();
      Thread.Sleep()镜头方法,可以使当前线程停止一段时间运行。
      Name线程名;
      Thread.CurrentThread获得当前的线程引用。

       private void Form1_Load(object sender, EventArgs e)
              {
                  //取消跨线程的访问
                  Control.CheckForIllegalCrossThreadCalls=false; 
              }
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 相关阅读:
      用Python实现一个全网可下载的Linux命令流程
      YB2502单片集成带可设定输出电流开关型降压转换器
      Kubernetes(31):kubeasz单主机模式
      SpringMVC(第一个项目HelloWorld))
      测试工程师提升:测试开发VS性能测试?谁能干出......
      三、安全工程练习题(CISSP)
      golang的垃圾回收算法之十写屏障的技术
      leetcode:575. 分糖果(python3解法)
      推荐高效的电脑磁盘备份解决方案!
      实现堆的各种基本运算的算法(数据结构)
    • 原文地址:https://blog.csdn.net/weixin_42291376/article/details/127834901