Я пытаюсь получить форму обновления.Метод формы в другом потоке, не вызывающий события
Я использую библиотеку, чтобы открыть форму, когда есть обновленный файл и загрузить с помощью edtFTPNet
В форме я передать объект FTP и начать загрузку, в FormLoad я обрабатывать два события, и я использую тему StartDownload(). Мои два события никогда не вызывают, я использую их, чтобы установить индикатор выполнения.
public partial class UpdateProgressForm : XtraForm
{
public FTPConnection FtpConn { get; set; }
public string UpdateFileName { get; set; }
public UpdateProgressForm()
{
InitializeComponent();
}
private void OnLoad(object sender, EventArgs e)
{
FtpConn.Downloading += FileDownLoading;
FtpConn.BytesTransferred += FileBytesTransfered;
}
private void FileDownLoading(object sender, FTPFileTransferEventArgs e)
{
progressBar.Properties.Maximum = (int) e.FileSize;
}
private void FileBytesTransfered(object sender, BytesTransferredEventArgs e)
{
progressBar.Position = (int) e.ByteCount;
}
public void StartDownload()
{
FtpConn.DownloadFile(@".\" + UpdateFileName, UpdateFileName);
}
private void OnShown(object sender, EventArgs e)
{
Thread tt = new Thread(StartDownload) {IsBackground = true};
tt.Start();
}
}
метод Библиотека вызова формы:
private void DownloadUpdateFile(string updateFileName)
{
using (ProgressForm = new UpdateProgressForm { FtpConn = FtpConn, UpdateFileName = updateFileName })
{
ProgressForm.ShowDialog();
}
}
Любая помощь? Спасибо.
Я изменил код, как вы показываете, но ничего не происходит снова. В библиотеке, которая является вызывающей формой, вскоре, когда я закрою форму, обработчик IsDownloaded, который обрабатывается в библиотеке, вызывается правильно. Внутри формы есть проблема. I Редактировать с помощью образца кода библиотеки. И я получаю исключение из TargetInvocation –
@gtas: пожалуйста, обновите вопрос с подробностями исключения TargetInvocationException. –
Исключение происходит, когда я закрываю форму, в которой событие вызывается однажды !!! i будет регенерировать и добавить –