Articles of invocar

Invocar e BeginInvoke

Saudações, estou desenvolvendo algum aplicativo em C #. No momento estou lidando com segmentação e tenho uma pergunta que tenho em mente. Qual é a diferença entre Invoke e BeginInvoke? Eu li alguns tópicos e encontrei algumas informações úteis aqui: aqui No entanto, qual é a diferença entre Invoke e BeginInvoke no código a seguir: […]

Operação de thread cruzado não é válida no Windows Forms

Alguém poderia me ajudar eu tenho um problema que eu estou tentando fazer com que este código funcione em segundo plano via threadpool, mas eu não consigo fazê-lo funcionar eu continuo recebendo este erro: Cross-thread operation not valid: Control ‘ListBox3’ accessed from a thread other than the thread it was created on. Aqui está o […]

Encadeamento do C # Winforms: Formulário fechado é invocado

O código a seguir demonstra meu dilema. O código cria um thread de segundo plano que processa algo e, em seguida, invoca o thread de interface do usuário com o resultado. Ele pode lançar uma exceção se o thread em segundo plano chama Invoke no formulário após o formulário ter sido fechado. Ele verifica IsHandleCreated […]

Problema de desempenho de MethodInfo.Invoke

Estou lendo e gravando dados para e de um arquivo. Os dados no arquivo podem ser flutuantes, duplos, ints etc. O tipo não é conhecido até o tempo de execução. Vou me referir ao tipo de dados armazenado no arquivo como estanho. Os dados são lidos ou gravados em matrizes do tipo Tout. Esse tipo […]

Exceção cross-thread ao configurar o proprietário WinForms.Form – como fazer isso certo?

Eu tenho um thread principal da interface do usuário que executa o aplicativo e cria o formulário da janela principal (vamos chamá-lo de W ). Eu também tenho um thread secundário que giro e que cria uma checkbox de diálogo (vamos chamá-lo de B ). Eu quero definir o proprietário da checkbox de diálogo B […]

Func () vs Func .Invoke ()

Estou curioso sobre as diferenças entre chamar um Func diretamente vs usando Invoke () nele. Existe alguma diferença? É o primeiro, açúcar sintático, e chama Invoke () embaixo de qualquer maneira? public T DoWork(Func method) { return (T)method.Invoke(); } vs public T DoWork(Func method) { return (T)method(); } Ou estou completamente errado 🙂 Obrigado.

Como obter o valor de retorno quando BeginInvoke / Invoke é chamado em c #

Eu tenho esse pequeno método que deve ser thread-safe. Tudo funciona até que eu queira ter valor de retorno em vez de vazio. Como faço para obter o valor de retorno quando BeginInvoke é chamado? public static string readControlText(Control varControl) { if (varControl.InvokeRequired) { varControl.BeginInvoke(new MethodInvoker(() => readControlText(varControl))); } else { string varText = varControl.Text; […]

Dispatcher Invoke (…) vs BeginInvoke (…) confusão

Estou confuso porque eu não posso fazer este aplicativo contador de teste trabalhar com 2 (ou mais) countertextboxes simultâneos com o uso de “BeginInvoke” no meu Dispatcher no método Count (). Você pode resolver o problema substituindo o BeginInvoke por um Invoke. Mas isso não resolve minha confusão. Aqui está o código de amostra de […]