제가 버튼을 눌렀을 때 데이터 처리를 하여 리스트에 보이려는 것을 구현하였습니다.
버튼을 누르면 데이터 처리하는 시간이 걸리기 때문에 데이터 처리하는 부분을 스레드로 구현하였으며,
데이터를 처리하는 동안 프로그레스다이어로그(원형)를 띄어었습니다.

소스코드를 보면

public class MyListView extends ListActivity implements Runnable{

public void run(){

...
//여기서 에러
MyListView.this.setListAdapter(new ArrayAdapter(MyListView.this,android.R.layout.simple_list_item_1,artists));

}



myAlphabetBtn.R.setOnClickListener(new OnClickListener() { // 버튼 클릭했을때 @Override public void onClick(View v) {
//프로그레스 대화상자를 띄움
ProgressDialog.show(this, "", "Loading, Please wait...."); ProgressDialog dlg = ProgressDialog.show(this, "", "Loading, Please wait...", true);
Thread thd = new Thread(this);
thd.start():

//스레드가 끝나면 프로그레스 다이어로그 없애는 코드 삽입
}}


대략 이렇게됩니다.

위의 방식대로 하면 run()함수에서
MyListView.this.setListAdapter(new ArrayAdapter(MyListView.this,android.R.layout.simple_list_item_1,artists));
이 에러가 나면서 프로그램은 종료됩니다.
왜 이부분에서 에러가 날까요?? 
이 코드를 없애면 스레드는 잘 돌아갑니다. 이 코드랑 스레드와 어떤 연관이 있을까요?
고수님들 꼭 답변부탁드립니다.