Здравствуйте, Tyoma Developer, Вы писали:
G>>Попробуй внести код мессадж бокса в метод, для которого вызывается Invoke
TD>Проблема в том, что мне на данном этапе необходимо получить ссылку на объект главной формы, который был создан в другом потоке и не важно где будет располагаться код.
и кто вас учит статики кругом пихать?
private void formMainCheckUpdateProc(bool ShowMessage)
{
//...
if(this.InvokeRequired)
Invoke(updateRequest, null);
else
updateRequest();
//...
}
private void updateRequired()
{
// Вот тут мне нужно получить ссылку на главную форму, но т.к. этот метод запушен в другом потоке....
// Может я зря это делаю, но пока не нашёл другого решения
// без проблем - получай, this - это ссылка на главную форму...
// более того, этот код будет выполняться из основного потока приложения (того в котором форма создана)
if (MessageBox.Show(this, "New version of " + System.Windows.Forms.Application.ProductName + " is available" +
"\r\n Do you want to download and update it?",
"New version is available",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.Yes) {
//...
}
}
// вот что-то типа такого я делаю ---------------------------------------
private void FormMain_Load(object sender, EventArgs e)
{
m_CheckForUpdateThread = new Thread(new ThreadStart(formMainCheckUpdateProc));
m_CheckForUpdateThread.IsBackground = true;
m_CheckForUpdateThread.Start();
}
... << RSDN@Home 1.2.0 alpha rev. 676>>