en en ko ko ko ja en en zh en pt ko en ko ko nl fr en nl ko ko en nl ko en ko nl en ko ko ko nl en nl ko en ko en ko en nl ko ko ko ko ko ko zh en en en en pt fr en en kn en sv fr en en en en en es fr en en en fr ja en en en en en en en en en fi en hu pt hbs_lat ru en en en en pl ko ko ko ko ko ko ko zh en en pt en en en uz en en fr eo sv en en en es en en en en en en ja en it hu ja eo en de en ko ko en en
파라미터가있는 ThreadStart 변수를 사용하여 스레드를 어떻게 시작합니까?
C #에서 매개 변수를 사용하여 스레드를 어떻게 시작합니까?
Thread t = new Thread (new ParameterizedThreadStart(myMethod)); t.Start (myParameterObject);
Thread 생성자의 오버로드 중 하나는 하나의 매개 변수를 start 메서드에 전달할 수있는 ParameterizedThreadStart 대리자를 사용합니다. 불행히도 단일 매개 변수 만 허용하고 객체로 전달하기 때문에 안전하지 않은 방식으로 수행합니다. 람다 식을 사용하여 관련 매개 변수를 캡처하고 강력한 형식으로 전달하는 것이 훨씬 쉽다는 것을 알았습니다.
람다 식을 사용할 수 있습니다
private void MyMethod(string param1,int param2) { //do stuff } Thread myNewThread = new Thread(() => MyMethod("param1",5)); myNewThread.Start();
이것은 지금까지 내가 찾은 최고의 답변입니다. 빠르고 쉽습니다.
Thread thread = new Thread(Work); thread.Start(Parameter); private void Work(object param) { string Parameter = (string)param; }
매개 변수 유형은 객체 여야합니다.
이 답변이 올바르지는 않지만이 접근법에 반대하는 것이 좋습니다. 람다 식을 사용하면 훨씬 쉽게 읽을 수 있으며 형식 캐스팅이 필요하지 않습니다. 여기를 참조하십시오 : https://stackoverflow.com/a/1195915/52551
class Program { static void Main(string[] args) { Thread t = new Thread(new ParameterizedThreadStart(ThreadMethod)); t.Start("My Parameter"); } static void ThreadMethod(object parameter) { // parameter equals to "My Parameter" } }
람다를 사용하는 간단한 방법 ..
Thread t = new Thread(() => DoSomething("param1", "param2")); t.Start();
또는 당신도 그렇게 delegate사용할 ThreadStart수 있습니다 …
ThreadStart ts = delegate { bool moreWork = DoWork("param1", "param2", "param3"); if (moreWork) { DoMoreWork("param4", "param5"); } }; new Thread(ts).Start();
또는 VS 2019 .NET 4.5 이상을 사용하여 더 깨끗합니다.
private void DoSomething(int param1, string param2) { //DO SOMETHING.. void ts() { if (param1 > 0) DoSomethingElse(param2, "param3"); } new Thread(ts).Start(); //DO SOMETHING.. }
이 글은 C# 카테고리에 분류되었고 c#, multithreading 태그가 있으며 소장 마님에 의해 2022-02-12에 작성되었습니다.
특정 결말을 가진 파일이없는 디렉토리 찾기 디렉토리를 표시하고
R에서 eCDF와 신속하게 통합 d\hat{F}_n(y) F^nF^n\hat{F}_nggg 그러나 이것은
Emacs에서 ispell의 개인 사전은 어디에 저장됩니까? 곳은 ispell 개인 사전? 문서가 저장되어있다 http://www.gnu.org/software/emacs/manual/html_node/emacs/Spelling.html가
AUC 대신 정규화 된 Gini Score를 평가로 사용하는 이유는 무엇입니까? Safe Driver Prediction 은 Normalized Gini
내 PHP 설치 경로는 어디입니까 centos를 사용하고
Proudly powered by WordPress