저는 초보자입니다. "ParameterizedThreadStart"는 인수로 단일 객체를 허용합니다.스레드의 매개 변수 처리
다른 대리인 서명이 있습니까 스레드에
(1) 통과 PARAMS (매개 변수의 변수 번호) 나를 수 있습니다?
(2) list와 같은 일반적인 매개 변수를 지원합니까?
저는 초보자입니다. "ParameterizedThreadStart"는 인수로 단일 객체를 허용합니다.스레드의 매개 변수 처리
다른 대리인 서명이 있습니까 스레드에
(1) 통과 PARAMS (매개 변수의 변수 번호) 나를 수 있습니다?
(2) list와 같은 일반적인 매개 변수를 지원합니까?
당신은 당신이 단일 개체로 원하는 모든 작업을 수행 할 수 있습니다합니다. 그냥 당신이 관심있는 매개 변수를 래핑하는 클래스를 정의 : 제네릭,
class ThreadState
{
public ThreadState()
{
}
public string Name
{
get;
set;
}
public int Age
{
get;
set;
}
}
// ...
ParameterizedThreadStart start = delegate(object objThreadState)
{
// cast to your actual object type
ThreadState state = (ThreadState)objThreadState;
// ... now do anything you want with it ...
};
당신은 어떤 매개 변수를 전달하는 Delegate.BeginInvoke 및 EndInvoke를 사용할 수 있습니다 당신은
delegate long MyFuncDelegate(int N);
MyFuncDelegate cpn = new MyFuncDelegate(MyFunc);
IAsyncResult ar = cpn.BeginInvoke(3, null, null);
// Do some stuff
while(!ar.IsCompleted)
{
// Do some stuff
}
// we now know that the call is
// complete as IsCompleted has
// returned true
long answer = cpn.EndInvoke(ar);
덧붙여, 그러한가 등 행위자 (T1의), 행위자 (T1의, T2)로 클래스를 정의하는 것이 유용 분야 예 V1은 T1, V2는 T2 등으로, Action (Of T1, T2) 등은 Action (V1, V2) 및 static factory 메소드를 호출하는 Exec (void) 등의 단일 메소드입니다. 따라서 VS2005에서도 적절한 매개 변수를 사용하여 함수를 호출하는 MethodInvoker를 매우 쉽게 어셈블 할 수 있습니다.
또는 객체 배열을 전달하십시오. –
예, 배열을 전달할 수도 있습니다.이 경우 가볍지 만 "형식 안전"은 적습니다. – bobbymcr
정말 많이 도와 줬어. 고마워. – user186973