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' ไม่พบ (คุณขาดการใช้คำสั่งหรือการอ้างอิงแอสเซมบลีหรือไม่) เพื่อที่ฉันสร้าง 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
หลังจากเพิ่มโดยใช้ System.Windows.Threading; 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