private void threadFunc(object arg) { try { List <string> data = arg as List <string>; int ThreadIndex = 0; int.TryParse(data[0], out ThreadIndex); List <string> param = new List <string>(); for (int i = 1; i < data.Count; i++) { param.Add(data[i]); } task = new Scrape(ThreadIndex, onWriteStatus, onSetProgress, param, delay, useProxy, proxylist); bool result = false; if (rbtnname.Checked == true) { result = task.doWorkByName(savepath); } else { result = task.doWorkBySeller(savepath); } } catch (Exception e) { string error = e.Message; } }