2012-03-17 3 views
0

스레딩, 코드의 라인이 같은 외모에 대한 걱정 해요 :Form1에 컨트롤과 지금

listView1.Items.Add(additional + message, icon); 

가 잘 작동하지만 물론 Form1에있다. 다른 클래스에서 내 Listview의 Add() 메서드를 사용하려면 어떻게해야합니까? (멀티 스레딩 'n 개의 물건.)

답변

1

이 양식에 메서드를 추가 : 다른 클래스에서 목록보기의 항목에 액세스

public void AddMessageAsync(string message, int icon) 
    { 
     Action<string, int> handler = (aMessage, imageIndex) => 
      listView1.Items.Add("someMessage" + aMessage, imageIndex); 


     BeginInvoke(handler, message, icon); 
    } 
+0

추가로 ' '전에'=>'(또는 매개 변수 앞에 누락 된'(')이 있습니다.) – Douglas

+0

나는 이것을 정말로 얻지 못합니다 : - | –

+0

@dm - 좀 더 명확하게하기 위해 코드를 수정했습니다 – alexm

0

은 (어쨌든 UI에 다른 문제를 일으킬 것) 멀티 스레딩 없습니다. 따라서 다른 클래스의 listView1에 액세스하려면 목록 뷰 객체 public을 만들어야하고 액세스하려는 클래스의 내부에 참조가 필요합니다