Ich habe eine Struktur mit fünf Eigenschaften, die auf der Schaltfläche _click
Methode (mit Windows Forms Designer) festgelegt werden. Nachdem Sie diese Einstellungen vorgenommen haben, wird der bacground-Arbeiter unter Verwendung von .RunWorkerAsync
ausgeführt. Die Struktur wird dann innerhalb der _DoWork
Methode des Hintergrundarbeiters verwendet. Wenn ich die Struktur innerhalb der Methode _ DoWork
aufrufen, haben die Eigenschaften der Struktur alle den Wert null. Kann mir jemand sagen, was ich falsch mache? Ich bin etwas neu in C#.Struktureigenschaft nicht verfügbar
die Struktur definieren
struct
FtpSetting
{
public String Server { get; set; }
public String Username { get; set; }
public String Password { get; set; }
public String FileName { get; set; }
public String FullName { get; set; }
}
FtpSetting _inputParameter;
Button-Klick-Funktion (nur relevante Code)
FileInfo fi = new FileInfo(ofd.FileName);
_inputParameter.Server = txtServer.Text;
_inputParameter.Username = txtServer.Text;
_inputParameter.Password = txtServer.Text;
_inputParameter.FileName = fi.Name;
_inputParameter.FullName = fi.FullName;
backgroundWorker.RunWorkerAsync();
DoWork Funktion (nur relevante Code)
string filename = ((FtpSetting)e.Argument).FileName; // Code crashes here
string fullname = ((FtpSetting)e.Argument).FullName; // ...But all the below values
string username = ((FtpSetting)e.Argument).Username; // ...Are null as well :-(
string password = ((FtpSetting)e.Argument).Password;
string server = ((FtpSetting)e.Argument).Server;
Es ist ziemlich wahrscheinlich, dass Sie brauchen eine Klasse und nicht eine Struktur, die in ganz bestimmten Bedingungen nur angemessen ist (und welche nicht gut spielen mit Veränderlichkeit) (https://msdn.microsoft.com/en-us/library/ms229017(v=vs.110).aspx) –