0

现在我遇到了 WCF 服务器/客户端的另一个问题。

我有一个方法:

bool spr_wiersz(int wiersz, int kolumna) //check_row(int row, int column)
        {
            for (int i = 0; i < 9; i++)
            {
                if (i != kolumna)
                {
                    //if(grid(row,i)==grid[row,column]
                    if (tablica[wiersz, i] == tablica[wiersz, kolumna]) 
                        return false;
                }
            }
            return true;
        }

我想将每一个值都发送给客户端,他们会检查它并将 true 或 false 返回给服务器。

ex.
client 1 compare for i=0
client 2 compare for i=1
client 3 compare for i=2
client 1 compare for i=3
client 2 compare for i=4
......

向我使用的每个客户发送一些东西:

subscribers.ForEach(delegate(ImessageCallback callback)
            {
                if (((ICommunicationObject)callback).State == CommunicationState.Opened)
                {


                }
            });

我不知道这是如何连接的;/另一个问题是,如何将网格发送到客户端以比较值。

4

1 回答 1

0

我解决了这个问题:) 它几乎可以正常工作。

bool spr_wiersz(int wiersz, int kolumna) 
        {
            wys_tab();
            Console.WriteLine("wiersz: {0}, kolumna: {1}", wiersz, kolumna);
            int i_wiersz=0;
            bool[] result = new bool[9];
            while (i_wiersz < 9)
            {
                subscribers.ForEach(delegate(ImessageCallback callback)
                {
                    if (((ICommunicationObject)callback).State == CommunicationState.Opened)
                    {
                        Console.WriteLine("wiersz: {0}, kolumna: {1}, i: {2}", wiersz, kolumna, i_wiersz);
                        result[i_wiersz] = callback.spr_wiersz(wiersz, kolumna, i_wiersz);
                        i_wiersz++;
                    }
                });
                for (int j = 0; j < i_wiersz; j++)
                {
                    if (result[j] == false)
                    {
                        return false;

                    }
                }

            }
            return true;
        }

它仅适用于 1,3 或 9 个客户。对于其他数量的客户,这还不起作用。

于 2012-05-05T19:36:48.277 回答