Как Вы ИСПОЛЬЗУЕТЕ Фортран 90 данных модуля

Параллельные расширения прохладны, но это может также быть сделано только при помощи пула потоков как это:

using System.Collections.Generic;
using System.Threading;

namespace noocyte.Threading
{
    class CalcState
    {
        public CalcState(ManualResetEvent reset, string input) {
            Reset = reset;
            Input = input;
        }
        public ManualResetEvent Reset { get; private set; }
        public string Input { get; set; }
    }

    class CalculateMT
    {
        List<string> result = new List<string>();
        List<ManualResetEvent> events = new List<ManualResetEvent>();

        private void Calc() {
            List<string> aList = new List<string>();
            aList.Add("test");

            foreach (var item in aList)
            {
                CalcState cs = new CalcState(new ManualResetEvent(false), item);
                events.Add(cs.Reset);
                ThreadPool.QueueUserWorkItem(new WaitCallback(Calculate), cs);
            }
            WaitHandle.WaitAll(events.ToArray());
        }

        private void Calculate(object s)
        {
            CalcState cs = s as CalcState;
            cs.Reset.Set();
            result.Add(cs.Input);
        }
    }
}
36
задан Community 23 May 2017 в 11:54
поделиться

3 ответа

Это вопрос баланса.

Если вы используете только несколько элементов из модуля, имеет смысл добавить ТОЛЬКО, чтобы четко указать, что вы используете.

Если вы используете много вещей из модуля, указание ТОЛЬКО будет сопровождаться множеством вещей, поэтому это имеет меньше смысла. Вы в основном выбираете то, что используете, но истинный факт заключается в том, что вы зависите от этого модуля в целом.

Однако, в конце концов, лучшая философия такова: если вас беспокоит загрязнение пространства имен, и у вас настолько большой модуль, что вы чувствуете себя обязанным добавить ТОЛЬКО, это означает, что ваш модуль слишком большой. Разделите его.

Обновление: Фортран? просто перекодируйте его на python;)

16
ответ дан 27 November 2019 в 06:02
поделиться

Раньше я просто использовал имя модуля - затем, по мере роста моего приложения, мне становилось все труднее и труднее находить источник функций (без обращения к grep) - некоторый другой код, распространяющийся по офису, по-прежнему использует одну подпрограмму для каждого файла, что имеет свой собственный набор проблем, но значительно упрощает использование текстового редактора для перемещения по коду и быстрого отслеживания того, что тебе нужно.

Испытав это, я стал сторонником использования , по возможности используйте только ... только . Я также начал подбирать Python и рассматривать его так же, как из импорта имени модуля * . Модули дают вам много замечательных вещей, но я предпочитаю строго контролировать свое глобальное пространство имен.

25
ответ дан 27 November 2019 в 06:02
поделиться

Главное преимущество ИСПОЛЬЗОВАНИЯ, ТОЛЬКО для меня, состоит в том, что он позволяет избежать загрязнения моего глобального пространства имен ненужными мне вещами.

4
ответ дан 27 November 2019 в 06:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: