我现在想在线程里自定义一个传参委托,但是不知道不能用,望高手指点
解决方案 »
- datagridview怎么设置列头对齐,列值对齐
- 能否提供C#读出和写入XML文件方法。最好是循序渐进的那种。能让全面了解。BAIDU都只提一个方法,没有系统的。
- c#编写com组件时接口ID怎么指定
- 【新手提问】c# winform 能否实现窗体左右分屏显示,左边调用记事本程序,右边调用其他的系统程序
- 如何保证数据的完整
- 高分求助 DXperience控件自带的Demo Center中的XtraGird Stuite实例中的XtraGird Tutorials中各个例子的所介绍的功能
- 请问如何实现鼠标碰到图标(不点击),旁边就跳出一个预览的图片
- C#如何实现Panel翻转效果
- 如何取得Process.Start()的执行结果。
- 求助大神:html生成word文档的时候,怎么设置word纸张方向为横向?
- 怎样在【外接程序】中获取当前打开窗体的对象?
- COM与TCP,TCP与COM通讯问题[急]
Thread td=new Thread(new ParameterizedThreadStart(a));
td.IsBackground()
td.start(int i)//传参数不用委托...
{
代码....
}
td.IsBackground=true;
using System;
using System.Threading;namespace showjim.sys.threading
{
public struct genericParameter<parameterType>
{
private Action<parameterType> Handle;
private parameterType Parameter;
public genericParameter(Action<parameterType> handle, parameterType parameter)
{
Handle = handle;
Parameter = parameter;
}
public Thread start()
{
Thread thread = new Thread(new ParameterizedThreadStart(ParameterThread));
thread.Start();
return thread;
}
private void ParameterThread(object parameter)
{
genericParameter<parameterType> value = (genericParameter<parameterType>)parameter;
value.Handle(value.Parameter);
}
public static Thread start(Action<parameterType> handle, parameterType parameter)
{
return new genericParameter<parameterType>
{
Handle = handle,
Parameter = parameter
}.start();
}
}
}
using System;
using System.Threading;namespace showjim.sys.threading
{
public struct genericParameter<parameterType>
{
private Action<parameterType> Handle;
private parameterType Parameter;
public genericParameter(Action<parameterType> handle, parameterType parameter)
{
Handle = handle;
Parameter = parameter;
}
public Thread start()
{
Thread thread = new Thread(new ThreadStart(ParameterThread));
thread.Start();
return thread;
}
private void ParameterThread()
{
Handle(Parameter);
}
public static Thread start(Action<parameterType> handle, parameterType parameter)
{
return new genericParameter<parameterType>(handle, parameter).start();
}
}
public struct genericParameter<parameterType, returnType>
{
private Func<parameterType, returnType> Handle;
private Action<returnType> OnReturn;
private parameterType Parameter;
public genericParameter(Func<parameterType, returnType> handle, parameterType parameter, Action<returnType> onReturn)
{
Handle = handle;
Parameter = parameter;
OnReturn = onReturn;
}
public Thread start()
{
Thread thread = new Thread(new ThreadStart(ParameterThread));
thread.Start();
return thread;
}
private void ParameterThread()
{
returnType returnValue = Handle(Parameter);
if (OnReturn != null) OnReturn(returnValue);
}
public static Thread start
(Func<parameterType, returnType> handle, parameterType parameter, Action<returnType> onReturn)
{
return new genericParameter<parameterType, returnType>(handle, parameter, onReturn).start();
}
}
}