DispatcherTimer.Start () 'должен объявлять тело, потому что оно не помечено как абстрактный, внешний или частичный в MVC4

public void DispatcherTimerSetup(HttpClient httpClient)
{
    Client = httpClient;
    dispatcherTimer = new DispatcherTimer();
    dispatcherTimer.Tick += dispatcherTimer_Tick;
    dispatcherTimer.Interval = new TimeSpan(0, 1, 0); // TimeSpan for 1 Minute 0 secs
    if (!dispatcherTimer.IsEnabled)
    {
        dispatcherTimer.Start();
    }
}

class DispatcherTimer
{
    public void Start();
}

Я получаю такую ​​ошибку

DispatcherTimer.Start () 'должен объявлять тело, потому что оно не помечено как абстрактный, внешний или частичный


person user3065401    schedule 05.12.2013    source источник
comment
Почему вы объявляете свой собственный класс DispatcherTimer? Вы должны использовать существующий . Сообщение об ошибке сообщает вам, что вам необходимо предоставить реализацию для метода Start(), потому что это не абстрактный метод.   -  person CodingIntrigue    schedule 05.12.2013
comment
Во-первых, я объявил этот класс как DispatcherTimer dispatcherTimer ;, после этого я получил эту ошибку DispatcherTimer 'не может быть найден (вам не хватает директивы using или ссылки на сборку?) Для этого я создал Dispatcher Где мне нужно получить этот существующий класс Dispatcher . не могли бы вы помочь мне, я новичок в MVC, сейчас использую MVC4. заранее спасибо   -  person user3065401    schedule 05.12.2013
comment
@ user3065401 А теперь угадайте, что означает это сообщение об ошибке?   -  person Thorsten Dittmar    schedule 05.12.2013
comment
@ user3065401 Если вы используете MVC, вам нужно начать с изучения C #. Разработка MVC требует базовых знаний о том, как C # работает как язык. Также есть определенные компоненты, которые нельзя эффективно использовать в проекте MVC. DispatcherTimer - один из них. Я предлагаю приобрести две достойные книги: одну по C # / Visual Studio Development и одну по MVC 4.0. Затем вы сможете задать здесь вопросы, которые с большей вероятностью получат информативные ответы.   -  person CodingIntrigue    schedule 05.12.2013
comment
Теперь я могу это сделать, пожалуйста, не говорите, что невозможное будет разочаровано.   -  person user3065401    schedule 05.12.2013


Ответы (3)


Проблема в том, что вы не импортировали соответствующий пространство имен (System.Windows.Threading). Затем вы создали класс DispatchTimer, который не является полным. В вашей реализации отсутствует тело метода Start().

Добавьте пространство имен (using System.Windows.Threading;), которое содержит встроенный класс DispatchTimer, и удалите свою собственную реализацию класса, и все будет в порядке.

person Thorsten Dittmar    schedule 05.12.2013
comment
После добавления using System.Windows.Threading; this NM Я получил эту ошибку Тип или имя пространства имен «Threading» не существует в пространстве имен «System.Windows». Поэтому я думаю, что нам нужно добавить любую сборку, например WindowsBase.dll. или что-то другое - person user3065401; 05.12.2013

Непонятно, что вы пытаетесь сделать.

class DispatcherTimer
{
    public void Start();//<--Here is the problem method has nobody. Either you should add body or mark it abstract.
}

Вам следует переименовать свой класс с DispatcherTimer на что-нибудь другое, я не уверен, как Tick, Interval, IsEnabled` не выдает ошибку.

Вероятно, вам следует полностью удалить свой DispatcherTimer класс и использовать System.Windows.Threading.DispatcherTimer.

Не уверен, можно ли использовать DispatcherTimer в Asp.Net, возможно, вам придется разобраться.

person Sriram Sakthivel    schedule 05.12.2013
comment
Да, нам нужно добавить эту ссылку WindowsBase.dll Я получил ее Спасибо Alll ............... - person user3065401; 05.12.2013

Вы ищете что-то вроде

public sealed class MyDispatcherTimer
{
    DispatcherTimer dispatcherTimer;
    public void DispatcherTimerSetup(HttpClient httpClient)
    {
        Client = httpClient;
        dispatcherTimer = new DispatcherTimer();
        dispatcherTimer.Tick += dispatcherTimer_Tick;
        dispatcherTimer.Interval = new TimeSpan(0, 1, 0); // TimeSpan for 1 Minute 0 secs

    }

    public void StartMyDispatcherTimer()
    {
        if (dispatcherTimer != null && !dispatcherTimer.IsEnabled)
            dispatcherTimer.Start();
    }
}

Но, как сказано в некоторых комментариях, неясно, зачем вы это ищете. Уже существует DispatcherTimer класс, который хорошо работает, поэтому не должно быть причин для его оборачивания.

Надеюсь, это поможет.

person MoonKnight    schedule 05.12.2013