Пример #1
0
    /*ManualResetEvent waithandle = new ManualResetEvent(false);
     * waithandles.Add(waithandle);
     * Thread liquid  = new Thread(new ThreadStart(() => {	simularTickCelda(celdas_activas[i]);
     *      waithandle.Set();
     * }));
     * liquid.Start();
     * //simularTickCelda(celdas_activas[i])
     * //a;adir un tread por cada una de las celdas activas
     * }
     * WaitHandle.WaitAll(waithandles.ToArray());*/

    /*
     *  Funcion: simularTickCelda()
     *
     *  Simula la distribucion de liquido desde <celda> hacia sus celdas vecinas.
     *
     *  <celda> no debe ser solida, y su saturacion debe ser mayor que 0 (de lo contrario no hay liquido que distribuir en <celda>).
     */
    void simularTickCelda(object state)
    {
        Celda celda = (Celda)state;

        //Celda celda = cellda;
        if (!celda.es_solido && celda.saturacion > 0f)
        {
            // DEBUG BREAKPOINT
            if (Controlador.debugflag1)
            {
                if (true)
                {
                    int i = 0;
                }
            }
            // END OF DEBUG BREAKPOINT

            celda.distribuirLiquido();
            doneEvent.Set();
        }
    }