2013-07-16 3 views
0

Я пытаюсь открыть форму окна в пределах цикла для каждого. Когда когда-либо он призывает метод показать форму, ни одна из картин не показывает, и это абсолютно пустая форма. Любые исправления для этого? Мне нужно, чтобы он находился в этом цикле, который вызывает метод formshow, но я пробовал его в другом месте, и форма отлично показывает, но я не могу точно использовать его в тех местах, где я его отлаживал, чтобы отладить проблематичное место. Спасибо вам за помощь! Я использую C#WindowsForm работает неправильно?

public override bool OnNewFrame() 
{ 
    for(uint i=0;;i++) 
    { 
     if (straightcalled == false) 
     { 
      if (checkform("Form4") == false) 
      { 
       straightcalled = true; 
       showform(); 
      } 
     }  
    } 

    return (++newframes < 50000); 
} 

Form4 newform = new Form4(); 

private void showform() 
{ 
    newform.Show(); 
    newform.WindowState = FormWindowState.Normal; 
    newform.ShowInTaskbar = false; 
    newform.TopMost = true; 
} 
+1

Что вы делаете в методе 'showform'. Я бы предположил, что в этом проблема. Можете ли вы опубликовать этот код? Я также не знаком с «OnNewFrame». Это часть какой-то библиотеки? Это что-то, что вызывается из потока пользовательского интерфейса? Вызывается ли это фоновым рабочим потоком? У вас также есть бесконечный цикл в цикле for. Вероятно, это часть вашей проблемы. (И меньше кто-то педантичен о том, что петля не бесконечна, потому что в какой-то момент она переполнится ... в практическом смысле она бесконечна) – pstrjds

+0

Что вы пытаетесь достичь? Создать константу 'loop' для создания одной« формы »один за другим? Я действительно не вижу смысла. – Greg

+0

Я считаю, что бесконечный цикл является проблемой, но проблема не в моем методе showform, потому что я могу назвать его формой где-нибудь еще, кроме метода OnNewFrame. Я также использую Intel Perceptual Computing SDK, и это метод внутри UtilMPipeline. – user2536897

ответ

0

Я считаю, что основной проблемой является цикл без условия выхода в методе OnNewFrame. Этот цикл просто потребляет процессор и, похоже, не делает ничего ценного.

Поскольку я не уверен, в чем ваша цель, я попытаюсь решить вашу проблему. Я не использовал Perceptual Computing SDK от Intel, так что это предположение, но, надеюсь, поможет указать вам в правильном направлении, даже если оно не решит проблему. Если вам нужно повторно использовать диалог или нужно, чтобы он был немодальным, это не решит проблему. Опять же, неуверенный относительно вашей цели, но, надеюсь, это помогает.

public override bool OnNewFrame() 
{ 
    if (straightcalled == false) 
    { 
     if (checkform("Form4") == false) 
     { 
      straightcalled = true; 
      showform(); 
     } 
    }  

    return (++newframes < 50000); 
} 

private void showform() 
{ 
    using (Form4 newForm = new Form4()) 
    { 
     newform.ShowInTaskbar = false; 
     newform.ShowDialog(); 
    } 
} 
+0

Спасибо! Это работает. Что касается бесконечных циклов, то это то, что содержит код распознавания лиц, и поскольку камера должна постоянно обновлять это, тогда туда приходит цикл, но это исправляет мою проблему с помощью формы! – user2536897

Смежные вопросы