BeginInvoke внутри класса ISynchronizeInvoke String to object [] - PullRequest
0 голосов
/ 21 апреля 2020

Я новичок, поэтому, пожалуйста, уточните c. У меня есть Windows код формы, который мне нужно сделать модульным и переместить его в класс. Код предназначен для камеры Keyence SR-2000, которую мы используем для считывания нескольких 2D штрих-кодов одновременно. Я знаю, что мне нужно реализовать ISynchronizeInvoke, но, похоже, застрял на преобразовании и как это сделать. Вот следующий код для интерфейса Keyence.

            m_searcher.Start((res) =>
            {
                //Define searched actions here.Defined actions work asynchronously.
                //"SearchListUp" works when a reader was searched.
                BeginInvoke(new delegateUserControl(SearchListUp), res.IpAddress);
            });  

Где res.IPAddress - строка. Поэтому я пытаюсь реализовать ISynchronizeInvoke и IAsyncResult

Я использую http://gurkashi.blogspot.com/2011/01/hi-all-in-this-post-i-will-demonstrate.html в качестве примера для начала.

Код Keyence в форме будет запускаться IAyncResult

private void SearchListUp(string ip)
{
    if (ip != "")
    {
        comboBox1.Items.Add(ip);
        comboBox1.SelectedIndex = comboBox1.Items.Count - 1;
        return;
    }
    else
    {
        NICcomboBox.Enabled = true;
        SctBtn.Enabled = true;
        SchBtn.Enabled = true;
    }
} 

Элементы, которые я не понимаю, это BeginInvoke (метод Delegate, объект [] args) отличается от того, что они делают BeginInvoke (Метод делегата, строковый аргумент) Как я могу привести это? Как они это делают?

Можно ли это сделать?

...