В C# я хочу реализовать Singletons для предоставления данных в одном потоке для многих других потоков.Рабочий пример Singleton
Я решил использовать эту ленивую форму Singleton от Jon тарелочкам (спасибо, Джон!):
public sealed class Singleton
{
Singleton()
{
}
public static Singleton Instance
{
get
{
return Nested.instance;
}
}
class Nested
{
// Explicit static constructor to tell C# compiler
// not to mark type as beforefieldinit
static Nested()
{
}
internal static readonly Singleton instance = new Singleton();
}
}
До сих пор, так хорошо. ... но как это можно использовать?
То, что я хочу сделать, это использовать один экземпляр следующих данных:
public bool myboolean = false ;
public double mydoubles[] = new double[128,3] ;
public IntPtr myhandles[] = new IntPtr[128] ;
Как декларировать и ссылаться на эти данные, как Одиночки?
Мне также нужны, чтобы они были ссылочными в разных пространствах имен.
Большое спасибо!
1) Если вы хотите создать синглтон, зачем использовать это слишком подробный синтаксис. Статья Джона дает синтаксис, который короче и одинаково эффективен. 2) Вы почти наверняка не хотите делать это вообще; попытка доступа к этим объектам из разных потоков, вероятно, приведет к небезопасному коду, заполненному условиями гонки. – Servy
ли это версия, которую вы имели в виду: \t общественного запечатанный класс Singleton \t { \t \t частный статический экземпляр Синглтон только для чтения = новый Синглтон(); \t \t статическая Синглтон() \t \t { \t \t} \t \t частный Синглтон() \t \t { \t \t} \t \t общественности статической Синглтон экземпляра \t \t { \t \t \t GE т \t \t \t { \t \t \t \t возврата экземпляра; \t \t \t} \t \t} \t} Я счастлив сделать это, но мое главное требование иметь уникальный экземпляр данных я упоминал выше, доступны для нескольких потоков. Если вы можете предложить хороший и эффективный способ (с кодированным примером) сделать это, я был бы очень благодарен. Благодаря! – jeronymite
FYI, я также ограничен .NET 3.5 в это время. Благодаря! – jeronymite