C语言怎么实现同时运行两个子程序

2024年11月16日 14:34
有4个网友回答
网友(1):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace _2
{
public partial class Form1 : Form
{
public Form1()
{
Control.CheckForIllegalCrossThreadCalls = false;//忽略错误线程
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Thread t1 = new Thread(new ThreadStart(run1));
t1.Start();
Thread t2 = new Thread(new ThreadStart(run2));
t2.Start();
}
public void run1()
{
while (1 == 1)
{
int i1 = label1.Location.X;
Random rd = new Random();
int i = rd.Next(19);
i1 = i1 + i;
Point p = new Point(i1, label1.Location.Y);
Thread.Sleep(22);
if (label1.Left >= this.Size.Width - label1.Size.Width)
{
Thread.CurrentThread.Abort();
}
}
//while (1 == 1)
//{
// Random rd = new Random();
// int i = rd.Next(19);
// label1.Left += i;
// Thread.Sleep(22);
// if (label1.Left >= this.Size.Width - label1.Size.Width)
// {
// Thread.CurrentThread.Abort();
// }
//}
}
public void run2()
{
int i1 = label1.Location.X;
int i2 = label2.Location.X;
//while (1 == 1)
//{
// Random rd = new Random();
// int i = rd.Next(19);
// label2.Left += i;
// Thread.Sleep(22);
// if (label2.Left >= (this.Size.Width - label2.Size.Width))
// {
// Thread.CurrentThread.Abort();
// }
//}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}

}
}

网友(2):

如果是多线程,那就调用 CreateThread
如果是启动其他进程,那就调用 CreateProcess

网友(3):

是多线程编程吧,直接调用createprocess函数实现多线程

网友(4):

线程。