我正在使用.Net 4.5.1構建一個針對iOS Android和Windows Phone 8.1的Xamarin跨平臺應用程序。當我嘗試在PCL項目中引用System.Timers時,它不在那裏。我該如何解決?Xamarin PCL缺少的System.Timer
6
A
回答
11
您可以使用:Device.StartTimer
語法:
public static void StartTimer (TimeSpan interval, Func<bool> callback)
例子:增量數,每1秒1分鐘
int number = 0;
Device.StartTimer(TimeSpan.FromSeconds(1),() => {
number++;
if(number <= 60)
{
return true; //continue
}
return false ; //not continue
});
例子:等待5秒鐘運行功能一次
Device.StartTimer(TimeSpan.FromSeconds(5),() => {
DoSomething();
return false ; //not continue
});
+2
** Device.StartTimer **只是** Xamarin.Forms **的一部分,它與Xamarin Native Development的可移植類庫**或**共享庫**不兼容 –
5
我前幾天注意到了這一點。儘管該課程在API文檔System.Threading.Timer Class ..Annoying中。
無論如何,我創建了自己的Timer類,使用Task.Delay()
:
public class Timer
{
private int _waitTime;
public int WaitTime
{
get { return _waitTime; }
set { _waitTime = value; }
}
private bool _isRunning;
public bool IsRunning
{
get { return _isRunning; }
set { _isRunning = value; }
}
public event EventHandler Elapsed;
protected virtual void OnTimerElapsed()
{
if (Elapsed != null)
{
Elapsed(this, new EventArgs());
}
}
public Timer(int waitTime)
{
WaitTime = waitTime;
}
public async Task Start()
{
int seconds = 0;
IsRunning = true;
while (IsRunning)
{
if (seconds != 0 && seconds % WaitTime == 0)
{
OnTimerElapsed();
}
await Task.Delay(1000);
seconds++;
}
}
public void Stop()
{
IsRunning = false;
}
}
相關問題
- 1. PCL:缺少屬性
- 2. 在Xamarin Studio中缺少PCL中的引用
- 3. Xamarin SQlitePlatformAndroid()缺少
- 4. Xamarin中缺少System.Collections.Specialized.HybridDictionary
- 5. Xamarin System.Net.WebException缺少WebExceptionStatus.NameResolutionFailure
- 6. SQLite的Xamarin PCL
- 7. XAMARIN PCL consumming WCF
- 8. Xamarin PCL和sqlite.net
- 9. Xamarin PCL渲染
- 10. Xamarin c#缺少包嗎?
- 11. 與Xamarin PCL項目
- 12. Xamarin SQLite PCL實現
- 13. Xamarin PCL的Messaging PlugIn(Carel Lotz)?
- 14. xamarin - System.Data.Oledb.dll中缺少的組件
- 15. 如何Xamarin Studio中Xamarin.Forms PCL
- 16. xamarin PCL肥皂web服務
- 17. 從xamarin android導航到PCL
- 18. Xamarin Sqlite-pcl庫問題
- 19. 實現rda.SocketsForPCL Xamarin表格PCL
- 20. xamarin跨平臺加密PCL
- 21. 在Xamarin中缺少ios選項
- 22. 缺少包System.Numerics.Complex在Xamarin工作室
- 23. Xamarin Studio中缺少配置文件
- 24. Xamarin,Android:「用android:config缺少AdActivity ...」C#!
- 25. Xamarin iOS EventArgs缺少第一個屬性
- 26. 在Xamarin iOS中缺少PdfSharp庫引用
- 27. Xamarin中缺少Azure移動服務InvokeApi
- 28. 來自PCL的Xamarin WebAPI調用
- 29. Xamarin - SQLite.SQLiteException:使用SQLite-net-pcl的約束
- 30. Xamarin跨平臺PCL GetStringAsync錯誤
這種「行爲」比賽和遵循什麼是4.5.1便攜式實際可用。我相信它現在在4.5.2,但是現在在Xamarin/iOS-Andriod上沒有幫助。查看詳情:http://stackoverflow.com/questions/12555049/timer-in-portable-library – SushiHangover
Xamarin在他們的論壇上也進行了討論和回覆:http://forums.xamarin.com/discussion/17227/timer在便攜式類庫 – SushiHangover