各位高手讨论一下这个多线程应用的问题!

MiracleRecurrence 2002-03-27 05:58:32

本人在程序中需要实现两个问题:
1、将文本文件转化为UNICODE码的文件
2、将BMP文件的点阵格式重排以后存为另一个文件。

由于用户需要在FORM中实现,且有时需要同时进行,本人选择了多线程。即建立两个类,分别处理文本文件与BMP文件,在建立两个线程的时候出了问题。

class1 { //处理文本文件
构造函数及其他函数;
TranText(string ResourceStr,string AimStr);//处理文本文件函数,参数为源文件与目标文件的文件路径
}


class2 { //BMP文件
构造函数及其他函数;
TranBmp(string ResourceStr,string AimStr);//处理BMP文件函数,参数为源文件与目标文件的文件路径
}

在建立线程的时候,应该如何实现?

我在程序中使用了如下的函数,建立第一个线程,(第二个同理)
Thread FirstThread1 = null;
FirstThread1 = new Thread(new ThreadStart(new class1.TranText(ResourceStr1,string AimStr1))); //ResourceStr1、AimStr1分别为从主线程得到的文件路径
使用该语句,程序报错----“应输入方法名称”;
应该如何实现本线程,其实本线程就一个方法,但该方法一定要有参数。请各位讨论一番,提供一点建立新线程的例子!!!!
...全文
73 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Abib 2002-03-28
  • 打赏
  • 举报
回复
你需要读一下这篇文章:
http://www.yesky.com/20020129/215831.shtml
qqchen79 2002-03-27
  • 打赏
  • 举报
回复
1. 把ResourceStr、AimStr这些都做成Property,而不是参数。
2. TranBmp/TranText不要写成static函数。
3. class1 c = new class1();
c.ResourceStr = ...;
c.AimStr = ...;
4. ThreadStart ts = new ThreadStart(c.TranBmp);
Thread t = new Thread(ts);
t.Start();
Yang_Wenli 2002-03-27
  • 打赏
  • 举报
回复
Thread构造函数要接收一个“代表”,创建一个新线程必须有一个代表“ThreadStart”,例子如下:

using System;
using System.Threading;

class SimpleThreadApp
{

public static void WorkerThreadMethod()
{
Console.WriteLine("Worker thread started");
}

public static void Main()
{
ThreadStart worker = new ThreadStart(WorkerThreadMethod);

Console.WriteLine("Main - Creating Worker thread");

Thread t = new Thread(worker);
t.Start();

Console.WriteLine("Main - Have requested the start of Worker thread");
}
}

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧