Если вы абсолютно не можете сделать обработчик события Page_Load async void
, как предполагает связанный вопрос, то правильным способом будет:
GetUserClaims(token).ConfigureAwait(false).GetAwaiter().GetResult();
Чтобы избежать тупика [ 115], что происходит, когда вы звоните Wait()
.
Вам также необходимо добавить .ConfigureAwait(false)
ко всем вложенным асинхронным вызовам, чтобы обеспечить возобновление выполнения в том же контексте:
UserInfoResponse response = await client.GetUserInfoAsync(new UserInfoRequest
{
Address = "https://localhost:44367/connect/userinfo",
Token = token,
}).ConfigureAwait(false);
Можно применить в значительной степени любой стандартный метод кластеризации к этому, это - просто вопрос определения функции расстояния правильно. При создании матрицы расстояний между фотографиями, необходимо рассмотреть комбинацию физического расстояния между местоположениями - если у Вас есть он - и временное расстояние между их метками времени создания. Нормализуйте их и поместите их на отдельные размеры, и можно даже просто смочь взять регулярное евклидово расстояние.
Всего наилучшего.
Просто сгруппируйте снимки, которые были сделаны в последовательные дни (никакие дни, в которые никакие снимки не были сделаны), вместе.
Вы могли бы попытаться динамично вычислить допуск на основе того, сколько или как большой (абсолютный или %) кластеры Вы хотите создать.
Для получения полезной кластеризации изображений согласно дате, Вы требуете следующего:
1) Количество кластеров должно быть переменным и не фиксированным априорно к кластеризации
2) Диаметр каждого кластера не должен превышать определенную сумму.
Кластеризирующийся алгоритм, который лучше всего удовлетворяет оба требования, является QT (качественный порог) кластеризирующийся алгоритм. Из Википедии:
QT (качественный порог) кластеризирующийся (Heyer, Kruglyak, Yooseph, 1999) является альтернативным методом разделения данных, изобретенных для генной кластеризации. Это требует большей вычислительной мощности, чем k-средства, но не требует определения количества кластеров априорно и всегда возвращает тот же результат, когда выполнено несколько раз.
Хотя это главным образом используется для генной кластеризации, я думаю, что это вписалось бы очень хорошо для того, в чем Вы нуждаетесь.