Реализация “Запускается с”, и “Заканчивается” запросами с Google App Engine

Действительно не ясно, что Вы подразумеваете, что я боюсь, но если существует возможность делегата, являющегося пустым, необходимо проверить что отдельно на каждом потоке. Обычно Вы сделали бы:

public void OnSeven()
{
    DivBySevenHandler handler = EventSeven;
    if (handler != null)
    {
        handler(...);
    }
}

Это гарантирует это, даже если EventSeven изменения в ходе OnSeven() Вы не доберетесь NullReferenceException.

, Но Вы правы, что Вам не нужна пустая проверка, если Вы определенно получили подписанный обработчик. Это может легко быть сделано в C# 2 с обработчиком "нет":

public event DivBySevenHandler EventSeven = delegate {};

, С другой стороны, Вы могли бы хотеть своего рода блокировку только, чтобы удостовериться, что у Вас есть "последний" набор обработчиков, если Вы могли бы получить подписки от различных потоков. Я имею пример в моем учебном руководстве по поточной обработке, которое может помочь - хотя обычно я рекомендовал бы не требовать его.

С точки зрения сборки "мусора", издатель события заканчивает со ссылкой на подписчика события (т.е. цель обработчика). Это - только проблема, если издатель предназначен для проживания дольше, чем подписчик.

5
задан David Underhill 21 July 2010 в 20:23
поделиться

2 ответа

Вы можете выполнить запрос «начинается с», используя фильтры неравенства:

MyModel.all().filter('prop >=', prefix).filter('prop <', prefix + u'\ufffd')

Выполнение запроса «заканчивается на» потребует сохранения обратной строки с последующим применением той же тактики, что и выше.

16
ответ дан 18 December 2019 в 09:08
поделиться

Кажется, вы не можете сделать это в общем случае, но можете сделать это для поиска по префиксу (начинается с):

Поиск по шаблонам в Appengine в python

2
ответ дан 18 December 2019 в 09:08
поделиться
Другие вопросы по тегам:

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