我有一個memorystream對象,它將被更新一個特定的時間間隔。添加一個事件到一個對象並處理它
當內存流對象發生更新時,應該創建事件&。 然後應該有一個事件處理程序來處理引發的事件。
請建議任何代碼或樣品的參考。
在此先感謝。
我有一個memorystream對象,它將被更新一個特定的時間間隔。添加一個事件到一個對象並處理它
當內存流對象發生更新時,應該創建事件&。 然後應該有一個事件處理程序來處理引發的事件。
請建議任何代碼或樣品的參考。
在此先感謝。
有關注冊和提高自定義事件的一個很好的樣本可以在http://www.switchonthecode.com/tutorials/csharp-snippet-tutorial-custom-event-handlers
更新中找到:鏈接壞了,我用archive.org從那裏引用(Changed事件提升部分,以避免競爭條件):
using System;
namespace CustomEvents
{
public class Car
{
public delegate void OwnerChangedEventHandler(string newOwner);
public event OwnerChangedEventHandler OwnerChanged;
private string make;
private string model;
private int year;
private string owner;
public string CarMake
{
get { return this.make; }
set { this.make = value; }
}
public string CarModel
{
get { return this.model; }
set { this.model = value; }
}
public int CarYear
{
get { return this.year; }
set { this.year = value; }
}
public string CarOwner
{
get { return this.owner; }
set
{
this.owner = value;
// To avoid race condition
var ownerchanged = this.OwnerChanged;
if (ownerchanged != null)
ownerchanged(value);
}
}
public Car()
{
}
}
}
你知道事件的邏輯嗎?
如果是這樣,請在您的內存流將更新的類中創建一個事件。 更新時提出事件。
在班級'消費者註冊事件。
而且,基本上就是這樣嗎?
也許你的疑問是一般的事件。爲此,我建議你閱讀MSDN,例如
有幾種方法可以解決這個問題。
最簡單的方法就是那個剛剛打敗我的人建議的,而不是直接調用MemoryStream.Write(),在你的應用程序中編寫一個調用MemoryStream.Write()的方法,然後調用一個事件你聲明自己在MemoryStream目標之外。
在更奇特但更簡潔的角落,您可以大膽地從MemoryStream中繼承一個類,並在其中添加一個事件屬性並覆蓋Write()方法(或者您調用的任何方法)調用基類Write()方法,然後引發事件。有些人可能會採用這種方法,根據你使用MemoryStream的方式,它可能不是理想的或有問題的,但它可以完成你想要的工作,並防止你在每次寫作時不得不自己提出事件。
+1。我想建議重寫Write()方法,我認爲這是最正確的方法 – 2011-04-26 12:32:57
感謝您查找數據並將其包含在答案中! – palswim 2015-10-15 00:03:14