热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中调度线程执行

如何在C#中调度线程执行原文:https://www.g

如何在 C# 中调度线程执行

原文:https://www . geeksforgeeks . org/如何调度 c-sharp 中的线程执行/

螺纹。启动方法负责调度一个线程执行。这个方法可以通过传递不同的参数来重载。


  • Start()

  • 开始(对象)


开始()

此方法告诉操作系统将当前实例的状态更改为“正在运行”。或者换句话说,由于这个方法,线程开始执行。

语法:

public void Start ();

异常:


  • 线程状态异常:如果线程已经启动。

  • OutOfMemoryException : 如果内存不足,无法启动线程。

示例:

// C# program to illustrate the
// use of Start() method
using System;
using System.Threading;
class GThread {
    // Non-static method
    public void Job()
    {
        for (int X = 0; X <4; X++) {
            Console.WriteLine(X);
        }
    }
}
// Driver Class
public class GFG {
    // Main Method
    public static void Main()
    {
        // Creating object of GThread class
        GThread obj = new GThread();
        // Creating and initializing a thread
        Thread thr = new Thread(new ThreadStart(obj.Job));
        // Start the execution of Thread
        // Using Start() method
        thr.Start();
    }
}

输出:

0
1
2
3


开始(对象)

此方法告诉操作系统将当前实例的状态更改为“正在运行”。它传递一个对象,该对象包含线程执行的方法要使用的数据。此参数是可选的。

语法:

public void Start (object parameter);

这里,参数是一个包含线程执行的方法要使用的数据的对象。

异常:


  • 线程状态异常:如果线程已经启动。

  • OutOfMemoryException : 如果内存不足,无法启动线程。

  • 无效操作异常:如果线程是使用线程启动委托而不是参数化线程启动委托创建的。

示例:

// C# program to illustrate the
// use of Start(Object) method
using System;
using System.Threading;
// Driver Class
class GFG {
    // Main Method
    public static void Main()
    {
        // Creating object of GFG class
        GFG obj = new GFG();
        // Creating and initializing threads
        Thread thr1 = new Thread(obj.Job1);
        Thread thr2 = new Thread(Job2);
        // Start the execution of Thread
        // Using Start(Object) method
        thr1.Start(01);
        thr2.Start("Hello")
    }
    // Non-static method
    public void Job1(object value)
    {
        Console.WriteLine("Data of Thread 1 is: {0}", value);
    }
    // Static method
    public static void Job2(object value)
    {
        Console.WriteLine("Data of Thread 2 is: {0}", value);
    }
}

输出:

Data of Thread 1 is: 1
Data of Thread 2 is: Hello

参考:


  • https://docs . Microsoft . com/en-us/dotnet/API/system . threading . thread . start?视图=netframework-4.7.2


推荐阅读
  • 本文旨在探讨Swift中的Closure与Objective-C中的Block之间的区别与联系,通过定义、使用方式以及外部变量捕获等方面的比较,帮助开发者更好地理解这两种机制的特点及应用场景。 ... [详细]
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • 一、使用Microsoft.Office.Interop.Excel.DLL需要安装Office代码如下:2publicstaticboolExportExcel(S ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • Java多线程售票案例分析
    本文通过一个售票系统的实例,深入探讨了Java中的多线程技术及其在资源共享和并发控制中的应用。售票过程涉及查询、收款、找零和出票等多个步骤,其中对总票数的管理尤为关键。 ... [详细]
  • D17:C#设计模式之十六观察者模式(Observer Pattern)【行为型】
    一、引言今天是2017年11月份的最后一天,也就是2017年11月30日,利用今天再写一个模式,争取下个月(也就是12月份& ... [详细]
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • 本文介绍了使用Python和C语言编写程序来计算一个给定数值的平方根的方法。通过迭代算法,我们能够精确地得到所需的结果。 ... [详细]
  • 深入理解iOS中的链式编程:以Masonry为例
    本文通过介绍Masonry这一轻量级布局框架,探讨链式编程在iOS开发中的应用。Masonry不仅简化了Auto Layout的使用,还提高了代码的可读性和维护性。 ... [详细]
  • 探讨 try-finally 结构中 finally 块的执行情况
    本文深入分析了 Java 中 try-finally 结构的执行机制,特别是探讨了在不同情况下 finally 块是否会得到执行。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 深入理解线程池及其基本实现
    本文探讨了线程池的概念、优势及其在Java中的应用。通过实例分析不同类型的线程池,并指导如何构建一个简易的线程池。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 想把一组chara[4096]的数组拷贝到shortb[6][256]中,尝试过用循环移位的方式,还用中间变量shortc[2048]的方式。得出的结论:1.移位方式效率最低2. ... [详细]
  • 本文深入探讨了WPF框架下的数据验证机制,包括内置验证规则的使用、自定义验证规则的实现方法、错误信息的有效展示策略以及验证时机的选择,旨在帮助开发者构建更加健壮和用户友好的应用程序。 ... [详细]
author-avatar
破晓sxy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有