C# 面试题 目录

C# 中如何创建和启动线程?

推荐答案

在C#中,可以使用System.Threading.Thread类来创建和启动线程。以下是一个简单的示例:

-- -------------------- ---- -------
----- -------
----- -----------------

----- -------
-
    ------ ---- ------
    -
        -- ------------------
        ------ ------ - --- ---------------

        -- ----
        ---------------

        -- -----------
        --- ---- - - -- - - -- ----
        -
            ----------------------- ------- - - ---
            ------------------
        -
    -

    ------ ---- --------
    -
        --- ---- - - -- - - -- ----
        -
            ------------------------- ------- - - ---
            ------------------
        -
    -
-

本题详细解读

1. 创建线程

在C#中,Thread类用于创建和控制线程。你可以通过传递一个ThreadStart委托或ParameterizedThreadStart委托来创建一个新的线程。ThreadStart委托指向一个无参数且返回void的方法,而ParameterizedThreadStart委托指向一个接受一个object类型参数且返回void的方法。

2. 启动线程

创建线程后,可以通过调用Start方法来启动线程。如果线程需要传递参数,可以使用ParameterizedThreadStart委托,并通过Start方法传递参数。

3. 线程执行

线程启动后,它将独立于主线程运行。在上面的示例中,DoWork方法将在新线程中执行,而主线程继续执行Main方法中的代码。

4. 线程同步

在多线程编程中,线程同步是一个重要的问题。C#提供了多种同步机制,如lockMonitorMutexSemaphore等,以确保多个线程能够安全地访问共享资源。

5. 线程生命周期

线程的生命周期包括创建、启动、运行、阻塞、终止等状态。你可以通过Thread类的方法来控制线程的状态,如SleepJoinAbort等。

6. 线程池

对于频繁创建和销毁线程的场景,C#提供了线程池(ThreadPool)来管理线程。线程池可以减少线程创建和销毁的开销,提高性能。

通过以上方式,你可以在C#中创建和启动线程,并控制线程的执行。

纠错
反馈