내 응용 프로그램에서 특정 기능을 수행하기위한 스레드를 만들었으며이를 수행하는 동안 표시되는 응용 프로그램의 기본 폼에서 레이블을 업데이트하려고합니다 사용자에게.응용 프로그램이 다른 스레드를 처리하는 동안 기본 폼의 레이블에 텍스트 업데이트
우리는 usinag seprate 스레드를 호출하는 함수를 통해 문자열 데이터를 반환하려고했지만 작동하지 않습니다.
스레드를 사용하여 작업을 수행하는 동안 레이블 텍스트를 업데이트하는 솔루션이 있는지 알려주십시오.
class e2ertaData : e2erta1
{
public void rsData()
{
network networkDetails = new network();
csv csvFile = new csv();
ftpFile ftpData = new ftpFile();
//Host Geo Data
string getIP = networkDetails.GetIP();
string[] hostData = getIP.Split('~');
GeoIP geoIPReq = new GeoIP();
GeoIpData geoIPReqData = new GeoIpData();
geoIPReqData = geoIPReq.GetMy();
if (geoIPReqData.KeyValue["Error"].ToString() == "NO")
{
//Reading server names from XML file
XmlDocument thisXmlDoc = new XmlDocument();
thisXmlDoc.LoadXml(ftpData.getConfigFile("server.xml"));
XmlNodeList xnList = thisXmlDoc.SelectNodes("/servers/server");
//updating label in e2erta1
this.l1.Text = "daaaaaaaaaaa";
this.l1.Visible = true;
this.l1.Refresh();
foreach (XmlNode xn in xnList)
{
string rtNote = "";
string requestedServer = xn["sname"].InnerText;
string rtGet = networkDetails.GetRT(requestedServer);
if (rtGet.Contains("Exception"))
{
rtNote = rtGet;
//MessageBox.Show(rtNote);
}
try
{
var row = new List<string> { rtGet, rtNote };
ftpData.addToCSVFile(row);
}
catch (Exception c)
{
MessageBox.Show(c.ToString());
}
}
}
else
{
MessageBox.Show("Geo data : " + geoIPReqData.KeyValue["Error"].ToString());
}
//return null;
}
}
감사합니다,
Naveed
시도 label.Refresh() 또한 어떤 코드를하시기 바랍니다 – Habib
'e2erta1'은 양식입니까? –