老司机夜插-理伦理片-理伦片免费-理伦片免费观看-理伦片免费看-理伦日韩-理论福利片-理论片第一页-理论片电影-理论片理论

金喜正规买球

如何解決窗體假死

轉帖|其它|編輯:郝浩|2011-04-11 14:44:55.000|閱讀 2027 次

概述:在之前的《創建無阻塞的異步調用》中,已經介紹過異步調用的編寫步驟和實施原理。異步調用是CLR為開發者提供的一種重要的編程手段,它也是構建高性能、可伸縮應用程序的關鍵。在多核CPU越來越普及的今天,異步編程允許使用非常少的線程執行很多操作。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

引言

  在之前的《創建無阻塞的異步調用》中,已經介紹過異步調用的編寫步驟和實施原理。異步調用是CLR為開發者提供的一種重要的編程手段,它也是構建高性能、可伸縮應用程序的關鍵。在多核CPU越來越普及的今天,異步編程允許使用非常少的線程執行很多操作。我們通常使用異步完成許多計算型、IO型的復雜、耗時操作,去取得我們的應用程序運行所需要的一部分數據。在取得這些數據后,我們需要將它們綁定在UI中呈現。當數據量偏大時,我們會發現窗體變成了空白面板。此時如果用鼠標點擊,窗體標題將會出現”失去響應”的字樣,而實際上UI線程仍在工作著,這對用戶來說是一種極度糟糕的體驗。如果你希望了解其中的原因(并不復雜:)),并徹底解決該問題,那么花時間讀完此文也許是個不錯的選擇。

  一般來說,窗體阻塞分為兩種情況。一種是在UI線程上調用耗時較長的操作,例如訪問數據庫,這種阻塞是UI線程被占用所導致,可以通過delegate.BeginInvoke的異步編程解決;另一種是窗體加載大批量數據,例如向ListView、DataGridView等控件中添加大量的數據。本文主要探討后一種阻塞。

基礎理論

  這部分簡單介紹CLR對跨線程UI訪問的處理。作為基礎內容,相信大部分.NET開發者對它并不陌生,讀者可根據實際情況略過此處。

控件的線程安全檢測

  在傳統的窗體編程中,UI中的控件元素與其他工作線程互相隔離,每次我們訪問一個UI控件,實際上都是在UI線程中進行。如果嘗試在其他線程中訪問控件,CLR針對不同的.NET Framework版本,會有不同的處理。在Framework1.x中,CLR允許應用程序以跨線程的方式運行,而在Framework2.0及以后版本中,System.Windows.Form.Control新增了CheckForIllegalCrossThreadCalls屬性,它是一個可讀寫的bool常量,標記我們是否需要對非UI線程對控件的調用做出檢測。如果指定true,當以其他線程訪問UI,CLR會跑出一個”InvalidOperationException:線程間操作無效,從不是創建控件***的線程訪問它”;如果為false,則不對該錯誤線程的調用進行捕獲,應用程序依然運行。

  在Framework1.x版本中,這個值默認是false。問什么之后的版本會加入這個屬性來約束我們的UI呢?實際上官方對此的解釋是當有多個并發線程嘗試對UI進行讀寫時,容易造成線程爭用資源帶來的死鎖。所以,CLR默認不允許以非UI線程訪問控件。

  然而,我們常常需要在窗體中使用異步線程來處理一些操作,例如IO和Socket通訊等。這時跨線程的UI訪問又是必須的,對此,.NET給我們的補充方案就是Control的Invoke和BeginInvoke。

Control的Invoke和BeginInvoke

對于這兩個方法,首先我們要有以下的認識:

1.Control.Invoke,Control.BeginInvoke和delegate.Invoke,delegate.BeginInvoke是不同的。
2.Control.Invoke中的委托方法,執行在主線程,也就是我們的UI線程。而Control.BeginInvoke從命名上來看雖然具有異步調用的特征(Begin),但也仍然執行在UI線程。
3.如果在UI線程中直接調用Invoke和BeginInvoke,數據量偏大時,依然會造成UI的假死。

  有很多開發者在初次接觸這兩個函數時,很容易就將它們同異步聯系起來、有些人會認為他們是獨立于UI線程之外的工作線程,實際上,他們都被這兩個函數的命名所蒙蔽了。如果以傳統調用異步的方式,直接調用Control.BeginInvoke,與同步函數的執行無異,UI線程還是會處理所有辛苦的操作,造成我們的應用程序阻塞。

  Control.Invoke的調用模型很明確:在UI線程中以代碼順序同步執行,因此,拋開工作線程調用UI元素的干擾,我們可以將Control.Invoke視為同步,本文不做過多介紹。

  很多開發者在接觸異步后,再來處理窗體假死的問題,很容易想當然的將Control.BeginInvoke視為WinForm封裝的異步。所以我們重點關注這個方法。

體驗BeginInvoke

  前面說過,BeginInvoke除了命名上來看像異步,其實很多時候我們調用起來根本沒有異步的”非阻塞”特性,我用下面這個例子簡單的嘗試一次對BeginInvoke的調用。

  如你所見,我現在創建了一個簡陋的Form,其中放置了一個Lable控件lable1,一個Button控件btn_Start,下面,開始code:

private void btn_Start_Click(object sender, EventArgs e)
{
// 儲存UI線程的標識符
int curThreadID = Thread.CurrentThread.ManagedThreadId;

new Thread((ThreadStart)delegate()
{
PrintThreadLog(curThreadID);
})
.Start();
}

private void PrintThreadLog(int mainThreadID)
{
// 當前線程的標識符
// A代碼塊
int asyncThreadID = Thread.CurrentThread.ManagedThreadId;

// 輸出當前線程的扼要信息,及與UI線程的引用比對結果
// B代碼塊
label1.BeginInvoke((MethodInvoker)delegate()
{
// 執行BeginInvoke內的方法的線程標識符
int curThreadID = Thread.CurrentThread.ManagedThreadId;

label1.Text = string.Format("Async Thread ID:{0},Current Thread ID:{1},Is UI Thread:{2}",
asyncThreadID, curThreadID, curThreadID.Equals(mainThreadID));
});

// 掛起當前線程3秒,模擬耗時操作
// C代碼塊
Thread.Sleep(3000);
}

  這段代碼在新的線程中訪問了UI,所以我們使用了label1.BeginInvoke函數。新的線程中,我們取得了當前工作線程的線程標識符,也取得了BeginInvoke函數內的線程。然后,將它與UI線程的標志符作比對,將結果輸出于Label1控件上。最后,我們掛起當前工作線程3秒,用于模擬一些常見的耗時操作。

  為了便于區分,我們將這段代碼分為A、B、C三個代碼塊。

運行結果:

我們能得到以下結論:

●PrintThreadLog函數主體(A、C代碼塊)執行在新的線程,它執行了不被BeginInvoke所包含的其他代碼。
●當我們調用了Control.BeginInvoke之后,線程調度權回歸到了UI線程。也就是說,BeginInvoke內部的代碼(B代碼塊)均執行在UI線程。
●在UI線程執行BeginInvok中封裝的代碼時,工作線程內的剩余代碼(C代碼塊)同時進行。它與BeginInvoke中的UI線程并行執行,互不干擾。
●由于Thread.Sleep(3000)是隔離在UI線程外的工作線程,因此這行代碼帶來的線程阻塞實際上阻塞了工作線程,不會給UI帶來任何影響。

Control.BeginInvoke的真正含義

  既然Control.BeginInvoke其中的委托函數仍執行在UI線程內,那這個”異步”到底指的是什么?話題回到本文最初:我們在上文已經提到了”控件的線程安全檢測”概念,相信大家對這種工作線程內調用Control.BeginInvoke的做法已經太熟悉了。我們也提到了”CLR不喜歡工作線程調用UI元素”。微軟的決心如此之大,以至于CLR團隊在.NET Framework2.0中添加了CheckForIllegalCrossThreadCalls和Control.Invoke、Control.BeginInvoke方法。這是一次相當重大的改革,CLR團隊希望達到這樣的效果:

  如果不申明CheckForIllegalCrossThreadCalls = false;這樣的”不安全”代碼,你就只能使用Control.Invoke和Control.BeginInvoke;而只要使用后兩者,不論它們的上下文運行環境是其它工作線程還是UI線程,它們封裝的代碼都會執行在UI線程內。所以,msdn對Control.BeginInvoke給出了這樣的解釋:在創建控件的基礎句柄所在線程上異步執行指定委托。

  它的真正含義是:BeginInvoke所謂的異步,是相對于調用線程的異步,而不是相對于UI線程的異步。

  CLR把Control.BeginInvoke(delegate method)中的異步函數執行在UI內,如果你像我上文那樣用新線程調用BeginInvoke,那么method相對于這個新線程內的其他函數是異步的。畢竟method執行在了UI線程,新線程立即回調,不必等待Control.BeginInvoke的完成。所以,這個后臺線程充分享受了”異步”的好處,不再阻塞,只是我們看不到而已;當然,如果你在BeginInvoke內執行一段耗時的代碼,無論是從遠程服務器獲取數據庫資料、IO讀取,還是在控件內加載一大批數據,UI線程還是阻塞的。

  正如傳統的Delegate.BeginInvoke的異步工作線程取自于.NET線程池,Control.BeginInvoke的異步工作線程就是UI線程。

  現在您明白兩種BeginInvoke的區別了嗎?

Control.Invoke、BeginInvoke與Windows消息

  實際上,Invoke和BeginInvoke的原理是將調用的方法Marshal成消息,然后調用Win32Api的RegisterWindowMessage()向UI發送消息。我們使用Reflector,可以看到以下代碼:

Control.Invoke:

public object Invoke(Delegate method, params object[] args)
{
using (new MultithreadSafeCallScope())
{
return this.FindMarshalingControl().MarshaledInvoke(this, method, args, true);
}
}

Control.BeginInvoke:

[EditorBrowsable(EditorBrowsableState.Advanced)]
public IAsyncResult BeginInvoke(Delegate method, params object[] args)
{
using (new MultithreadSafeCallScope())
{
return (IAsyncResult)this.FindMarshalingControl().MarshaledInvoke(this, method, args, false);
}
}

  在以上代碼中我們看到Control.Invoke和BeginInvoke的不同之處,在于調用MarshaledInvoke時,Invoke向最后一個參數傳遞了false,而BeginInvoke則是true。

MarshaledInvoke的結構是這樣的:

private object MarshaledInvoke(Control caller, Delegate method, object[] args, bool synchronous)

  很明顯,最后一個參數synchronous表示是否按照同步處理。MarshaledInvoke內部這樣處理這個參數:

if (!synchronous)
{
return entry;
}
if (!entry.IsCompleted)
{
this.WaitForWaitHandle(entry.AsyncWaitHandle);
}

  所以,BeginInvoke的處理就是直接回調,Invoke卻在等待異步函數執行完后,才繼續執行。

  到此為止,Invoke和BeginInvoke的工作就結束了,其余的工作就是UI對消息的處理,它由Control的WndProc(ref Message m)來執行。消息處理到底會給我們的UI帶來什么樣的影響?接著來看Application.DoEvents()函數。

Application.DoEvents

  Application.DoEvents()函數是WinForm編程中極為重要的函數,但實際編程中,大多數開發者極少調用它。如果您對這個函數缺乏了解,那很可能會在以后長期的編程中對“窗體假死”這樣的現象陷入迷惑。

  當運行 Windows 窗體時,它將創建新窗體,然后該窗體等待處理事件。該窗體在每次處理事件時,均將處理與該事件關聯的所有代碼。所有其他事件在隊列中等待。當代碼處理事件時,應用程序不會響應。例如,如果將甲窗口拖到乙窗口之上,則乙窗口不會重新繪制。

  如果在代碼中調用 DoEvents,則您的應用程序可以處理其他事件。 例如,如果您有向ListBox添加數據的窗體,并將 DoEvents 添加到代碼中,那么當將另一窗口拖到您的窗體上時,該窗體將重新繪制。如果從代碼中移除 DoEvents,那么在按鈕的單擊事件處理程序執行結束以前,您的窗體不會重新繪制。

  因此,如果我們在窗體執行事件時,不處理消息隊列中的windows消息,窗體必然會失去響應。而上文已經介紹過,Control.Invoke和BeginInvoke都會向UI發送消息,造成UI對消息的處理,因此,這為我們解決窗體加載大量數據時的假死提供了思路。

解決方案

嘗試”無假死”

  這次我們使用開發中出現頻率極高的ListView控件,體驗一次理想的”異步刷新”,窗體中有一個ListView控件命名為listView1,并將View設置為Detail,添加兩個ColumnHeader;一個Button命名為btn_Start,設計視圖如下:

開始code:

private readonly int Max_Item_Count = 10000;

private void button1_Click(object sender, EventArgs e)
{
new Thread((ThreadStart)(delegate()
{
for (int i = 0; i < Max_Item_Count; i++)
{
// 此處警惕值類型裝箱造成的"性能陷阱"
listView1.Invoke((MethodInvoker)delegate()
{
listView1.Items.Add(new ListViewItem(new string[]
{ i.ToString(), string.Format("This is No.{0} item", i.ToString()) }));
});
};
}))
.Start();
}

  代碼運行后,你將會看到一個飛速滾動的ListView列表,在加載的過程中,列表以令人眼花繚亂的速度添加數據,此時你嘗試拉動滾動條,或者移動窗體,都會發現這次的效果與以往的”白板”、”假死”截然不同!這是一個令人欣喜的變化。

運行過程:

  從我的截圖中可以看出,窗體在加載數據的過程中,依然繪制界面,并沒有出現&rdquo;假死”。

  如果上述代碼調用的是Control.BeginInvoke,程序會發生些奇怪的現象,想想是為什么?

好吧,到了現在,我們終于可以松了一口氣了,界面響應的問題已經被解決,一切美好。但是,這樣的窗體還是暴漏出兩個大問題:
1. 比起傳統加載,”無假死窗體”加載速度明顯減慢。
2. 加載數據過程中,窗體發生劇烈閃爍現象。

問題分析

  我們在調用Control.Invoke時,強迫窗體處理消息,從而使界面得到了響應,同時也產生了一些副作用。其中之一就是消息處理使得窗體發生了在循環中發生了重繪,”閃爍”現象就是窗體重繪引發的,有過GDI+開發經驗的開發者應該比較熟悉。同時,每次調用Invoke都會使UI處理消息,也直接增加了控件對數據處理的時間成本,導致了性能問題。

  對于&rdquo;性能問題”,我并沒有什么解決方案(有自己見解的朋友歡迎提出)。有些控件(ListView、ListBox)具有BeginUpdate和EndUpdate函數,可以臨時掛起刷新,加快性能。但畢竟我們這里創建了一個會滾動的界面,這種數據的”動態加載”方式是前者無法比擬的。

  對于”閃爍”,我先來解釋問題的原因。通常,控件的繪制包括兩個環節:擦出原對象與繪制新對象。首先windows發送一個消息,通知控件擦除原圖像,然后進行繪制。如果要在控件面板上以SolidBrush繪制,控件就會在其面板上直接繪制內容。當用戶改變了控件尺寸,Windows將會調用很多繪制回收操作,當每次回收和繪制發生時,由于”繪制”較”擦除”更為延后,才會給用戶帶來”閃爍”的感覺。以往我們為解決此類問題,往往需要在Control.WndProc中作出復雜的處理。而.NET Framework為我們提供了更為優雅的一種方案,那就是雙緩沖,我們直接調用它即可。

最終方案

1.新建Windows組件DBListView.cs,讓它繼承自ListView。
2.在控件中添加如下代碼: public DBListView()
{


// 打開控件的雙緩沖
SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
}

將項目重新生成,然后從工具箱中拖出新增的組建DBListView到窗體上,命名為dbListView1,執行以下代碼: private void button1_Click(object sender, EventArgs e)
{
new Thread((ThreadStart)(delegate()
{
for (int i = 0; i < Max_Item_Count; i++)
{
// 此處警惕值類型裝箱造成的"性能陷阱"
dbListView1.Invoke((MethodInvoker)delegate()
{
dbListView1.Items.Add(new ListViewItem(new string[]
{ i.ToString(), string.Format("This is No.{0} item", i.ToString()) }));
});
};
}))
.Start();
} >

  現在”閃爍”的問題是不是已經得到了解決?

  在我們的實際應用中,這種加載數據引起的阻塞是很常見的,在用戶對界面性能關注度不高的情況下,使用本文介紹的方式處理這種阻塞是一種不錯的選擇,如果以類似IE8、迅雷等軟件的載入動畫配合,效果會更理想。

 


標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉載自:博客園

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
大山里真实刮伦小说 | 在线观看www日本免费网站 | 国语电影 | 亚洲乱码卡3卡4卡新区 | 宅男噜噜噜66网站 | 日韩精品 欧美 | 香蕉伊人不卡在线看 | 久草免费新视频14 | 性欧美大战久久久久久久野外黑人 | 亚洲乱妇老熟女爽到高潮的片 | 色情成人影院欧美激情 | 六月色婷婷 | jizz在线观看免费高清 | 色窝窝免费播放视频在线 | 日日碰狠狠躁久久躁孕妇 | 伦 乱真实故事 | 开心五月 激情深爱 | 午夜在线观看视频免费成人 | 一区二区在线看 | 把女人弄爽A片特黄大片在线 | 久久精品爱国产免费久久 | 日本在线视频一区 | 在线黄色小视频 | 日本亚洲欧洲免费无码 | 午夜精品国产 | 日韩精品影视 | 激情婷婷综合 | 久久99精品久久久久久野外 | 日本三级观看高清免费 | 青青热久久国产久精品 | 国产精品-区区久久久狼 | 亚洲精品第一页中文字幕 | 久久精品国产自在一线 | 天天综合天天 | 欧美中文字幕一区二区三区 | 爱你千万次韩剧在线观看 | 国产成人黄色在线观看 | 李小璐不雅视频21秒 | 亚洲精品国产专区91在线 | 国色一卡2卡3卡4卡在线新区 | 在线免费自拍 | 激情网成人 | 五月婷婷激情在线 | 好看的国产电影 | 一本一道久久综合网 | 让人爽到湿的小黄书 | 500第一精品福利导航 | 午夜视频免费在线观看 | 色欲国产麻豆一精品一AV一免费 | 免费观看中文字幕午夜理论 | 日韩一级视频 | 黑人巨茎大战白人女40CM | 欧美风情第一页 | 干干干操操操 | 日韩精品一区二区三区国语自制 | 精品国产天堂综合一区在线 | 欧美另类性视频在线看 | www四虎在线高清 | 夜夜躁日日躁狠狠久久 | 国产精品手机在线观看 | 熟女人妻 中文字幕在线 | 亚洲欧美精品无码大片在线观看 | 天天天| 国产在线播放精品视频 | 日韩视频中文字幕 | 国产最新在线视频 | 很黄很肉很刺激的小说在线阅读 | 国产传媒在线观看视频免费观看 | 无人在线观看高清视频单曲直播 | 播播网手机在线播放 | 欧美丰满少妇久久无码精品 | 成人国产精品免费网站 | 色婷婷国产熟妇人妻露脸AV | 色婷婷.com| 国产免费AV片在线播放唯爱网 | 国产精品久久久久无码AV色戒 | 免费看高视频hh网站免费 | 青青青国产手机在线播放 | 999影院成人在线影院 | 抖音樱桃丝瓜绿巨人黄瓜 | 国产精品久久久久久久久夜色 | 三要四妾国语免费观看 | 亚州久久久久区1区2少妇 | 99精品国产成人一区二区 | 国产黄色在线免费观看 | 精产国品一二三产品麻豆 | 友人母在线播放BD高清 | 蜜桃AV亚洲第一区二区 | 无码毛片A片-区二区三区 | 日韩亚洲国产高清免费视频 | 色婷婷综合网 | 护士毛片 | 天天色网站 | 亚洲精品国产一区二区贰佰信息网 | 柳文文被肉干高H潮文不断 擼一擼AV网站 | 黄色网址在线免费播放 | 熟女人妻一区二区三区视频 | 国产精品热久久高潮AV袁孑怡 | 丰满少妇夜夜爽爽高潮水 | 按摩高潮A片一区二区三区 澳门永久av免费网站 | 国产传媒18精品A片一区 | 国产偷拍一极视频 | 麻豆精品一卡2卡三卡4卡免费观看 | 2018高清一日本道国产 | 男女啪啪做爰高潮全过图片 | 老司机久久精品视频 | 久久九九久精品国产 | 三级网址在线播放 | 国产精品久久久影院 | 91精品导航在线观看 | 97精品一区二区三区在线不卡 | 伊人精品网| 日韩电影一二三区 | 亚洲爱爱网| 好紧好湿好爽免费视频在线观看 | 久久免费公开视频 | 激情综合激情五月 | 午夜影院在线费看 | 国产一三区A片在线播放 | 国产又爽又大又黄A片软件 国产又爽又大又黄A片图片 | 黄瓜污影院 | 日韩国精品一区二区A片 | 亚洲 欧洲 小说 自拍 | 久久99精品久久久久久 | 亚洲情A成黄在线观看动漫软件 | 日韩国产无矿砖一线二线图 | 久久久综合网 | 一本-道久久A久久精品综合 | 久久国产一久久高清 | 欧美 亚洲 日韩 中文2019 | 十九岁日本电影免费粤语 | 色综合久久88色综合天天 | 美国三级在线 | 日韩视频免费 | 一本到亚洲网 | 色综合久久天天综合观看 | 边吃上边摸下H(男男) | 四虎影视国产在线观看精品 | 国产香港特级一级毛片 | 青草国产超碰人人添人人碱 | 久久精品国产清自在天天线 | 中日韩一卡二卡三卡四 | 国产午夜影视大全免费观看 | 日韩欧美理论 | 天天干天天草天天 | 性欧美极品 | 男人大JI巴做爰好爽视频 | 性奴抽插乳中出精没射视频搜索 | 黄站视频 | 亚洲免费资源 | 国产又黄又猛又粗又爽的A片动漫 | 青青草久草视频 | 国产乱码人妻一区二区三区四区 | 清纯校花被调教高H | 国产毛多水多高潮高清 | 一个人日本免费高清 | 久久久久久久久久免观看 | 人妻换人妻互换A片爽电影 人妻精品国产一区二区 | 99久久综合给久久精品 | 你懂的在线观看视频 | 欧美激情16p | 成人爽a毛片在线视频网站 成人首页 | 亚洲日韩一区精品射精 | 88xx成人永久免费观看 | 久久精品中文字幕大胸 | 人人爽久久久噜噜噜婷婷 | 久久精选视频 | 99热精品在线av播放 | 黄色片久久久 | 日本一道人妻无码一区视频 | 91chinese videos| 欧美性猛交XXXX乱大交3 | 久久精品波多野结衣 | 中文字幕一区二区在线观看 | 国产精品欧美亚洲韩国日本不卡 | 国产高清一级毛片在线不卡 | 在线播放国产乱 | 久久国产亚洲精品AV麻豆 | 久久桃花| 桃子视频在线观看高清免费视频 | 狠狠色噜噜狠狠狠狠91 | 免费高清在线影片一区 | 国产精品人妻99一区二区 | 亚洲国产精品色情777777 | 狂躁美女大BBBBBB视频1 | 香蕉人妻AV久久久久天天 | 激情做人爱视频在线观看 | 欧美精品www| 亚洲免费人成 久久 | 麻豆乱码1区2区新区 | 五月色 网站 | 男人J进女人P | 中文字幕熟女人妻佐佐木 | 日本无码成人片在线观看波多 | 在线永久看片免费的视频 | 91免费国产 | 激情深爱 | 国内揄拍国产精品人妻门事件 | 色综合天天| 久久人人爽爽人人爽AA片 | 狠狠躁夜夜躁人人爽天天段 | 99久久精品无码一区二区毛片 | 日本高清色本免费现在观看 | 免费国产网站 | 欧美激情一区二区 | 久久91精品国产91久久跳舞 | 国产麻豆精品人妻无码A片 国产麻豆精品久久一二三 国产伦精品一区二区三区在线观看 | 99久久点在线精品 | 国产一区二区三不卡高清 | 亚洲性无码A片在线观看尖叫 | 久久成人小视频 | 酒色网小说| 日本强伦姧熟睡人妻完整视频 | 日本高清一二三区视频在线 | 国产真实强被迫伦姧女在线观看 | 国产亚洲精品成人AA片小说 | 久久99国产亚洲精品观看 | 大尺度做爰啪啪床戏男人小说 | 中文字幕奈奈美被公侵犯 | 国产亚洲午夜精品a一区二区 | 粗大的内捧猛烈进出A片黄 粗大的内捧猛烈进出A片小说 | 办公室疯狂高潮呻吟摸揉A片欧美 | 无码人妻国产一区二区三区 | 日本黄色三级视频 | 天美麻豆 | 日韩三级中文 | 亚洲性夜色噜噜噜网站2258KK | 亚洲巨乳日本无码一二三区 | 99久久免费看国产精品 | 蜜桃精品AV无码喷奶水小说 | 国产亚洲精品97在线视频一 | 亚洲午夜精品A片久久软件 亚洲午夜无码久久久久蜜臀av | 无尺码精品日本欧美 | 蜜桃999.com| 亚洲国产成人精品女人久久久 | z o oz o o人与猪 | 日本jizz中国 | 午夜免费福利小电影 | 最新中文字幕在线视频 | 欧美精品一区二区少妇免费A片 | 国产好大好爽久久久久久久 | 久久99精品久久久久久首页 | 手机黄色 | 四川W搡BBB搡WBBB搡 | 黄色成人免费网站 | 亚洲最大视频网站 | 天天做天天爱天天综合网2021 | 黄色片黄色片黄色片黄色片黄色片 | 国产视频资源 | 91精品福利久久久 | 日韩精品极品视频在线观看免费 | 把腿张开老子臊烂你多P视频软件 | 性色aⅴ在线观看swag | 美国vps毛片| 日本高清在线看片免费视频 | 97国产精品视频在线观看 | 女人与牛交ZOZO | 欧美激情视频一区二区三区 | 薰衣草影院 | 白浊怀孕H白浊总受男男H | 熟妇乱子作爱视频大陆 | 国产69精品久久久久999三级 | 色欲久久精品无码一区二区三区 | 波多野结衣免费 | 91亚洲国产成人久久精品网址 | 国产精品一区二区三区免费 | 第四色主页| 五月天婷婷免费观看视频在线 | 成人毛片18女人A片 成人毛片18岁女人毛片免费看 | 伦理电院网 | 久久精品国产99国产精品免费看 | 日韩精品电影在线 | 十九岁日本电影免费完整版 | www.四色.com| 2024毛片 | 丁香五月激情缘综合区 | 日韩精品欧美一区二区三区 | 成人天堂婷婷青青视频在线观看 | 精品午夜寂寞影院在线观看 | 篠崎かんな黑人解禁粗暴 | 性久久久久久久久波多野结衣 | 国产精品嫩草99AV在线 | 久久草情侣vs | 国产一级大片 | 免费无毒a网站在线观看 | 精品日产1区2卡三卡麻豆 | 国产精口品美女乱子伦高潮 | 日本高清在线观看视频 | 中文人妻AV久久人妻水密桃 | 亚洲精品一区二区三浪潮AV | 日韩久久一区二区三区 | 久久精品伊人波多野结 | 少妇伦子伦精品无码 | 天天干天天夜 | 91导航在线观看 | 亚洲黄色三级视频 | 精品日本久久久久久久久久 | 日本中文字幕免费 | 久9久9精品视频在线观看 | 999精品国产| 97国产视频 | 中文字幕国产在线观看 | 国产精品爽爽久久久久久无码 | 欧美亚洲丝袜 | 亚洲欧洲校园自拍都市 | 精品九九久久国内精品 | 免费看人与动人物XXXX | 免费国产黄线在线观看视频 | 国产入口在线观看 | 天天做天天爱天天操 | 亚洲欧洲日韩在线电影 | 中文字幕乱码中文乱码777 | 色久久| 国产久热在线观看视频 | 国产成人亚洲精品91专区手机 | 风流艳帝 | 午夜看片在线 | 国产超碰人人爱被IOS解锁 | 家庭乱码伦小说区 | 六月丁香伊人 | 国产91极品福利手机观看 | 国精产品W灬源码A片伊在线 | 国产香蕉视频 | 亚洲成AV人片一区二区三区 | 国产午夜在线观看视频播放 | 少妇和大狼拘作爱A片 | 亚洲精品久久久午夜福利电影网 | 韩国日本香港三级 | 天天插天天干天天操 | 国产人A片在线乱码视频 | 成人亚洲A片V一区二区中出片 | 在线中文字幕一区 | 亚洲天堂.com | 最新黄色地址 | 免费看成人A片无码视频网站 | 手机上免费看twitch的加速器 | 天天天天夜夜夜夜爱爱爱爱 | 亚洲中文字幕琪琪在线 | 天堂资源中文在线 | 性a爱片免费视频性 | 日本一区三区二区最新 | 亚欧洲精品在线视频免费观看 | 色网站导航 | 国产一区二区三区乱码在线观看 | 影音先锋av熟女资源网 | 黄网址大全免费观看免费 | 日本不卡在线观看免费v | 国产成人综合亚洲 | 99视频在线精品免费观看18 | 国内精品影院久久久久 | 欧美日韩视频在线第一区二区三区 | 琪琪电影网伦理片韩国 | 日韩黄色成人 | 国内精品视频九九九九 | 亚洲黄毛片 | 狠狠干网址 | 日韩精品成人 | 中文字幕最新 | 日本无码专区亚洲麻豆 | 羞国产在线拍揄自揄视频 | 99热在线这里只有精品 | 免费看毛片网站 | 狠狠躁日日躁夜夜躁A片 | 99国产精品人妻无码一区 | 日韩毛片在线 | 黑人vs亚洲美女在线观看 | 国产激情无码激情A片小说 国产激情艳情在线看视频 国产极品JK白丝喷白浆免费视频 | 亚洲色大成网站WWW永久麻豆 | 久久久WWW成人免费精品 | 日本xxx视频| 国产国语在线播放视频 | 成人亚洲A片V一区二区三区蜜月 | 国产中文字幕免费 | 国产一浮力影院 | 久草在线新免久费观看视频 | 亚洲国产在线资源网 | 爽吗你个小浪货叫大声点 | 一个人看的视频WWW高清免费 | 99热在这里只有免费精品 | 正在播放重口老熟女露脸 | 男人午夜小视频 | 2020年最新国产精品正在播放 | 亚洲丰满女人ass硕大 | 最近最新中文字幕免费的一页 | 亚洲国产欧美目韩成人综合 | 黄色在线网站观看 | 色情黄情亚洲 | 在线观看的黄色网址 | 黑人狂躁日本妞免费视频 | 四虎最新版本2024在线网址 | JIZZJIZZ日本护士水多多小说 | 久久精品视在线-2 | japanese大战黑人 | 国产护士一级毛片高清 | a黄色毛片| 99国精产品 | 日本一区二区三区免费A片 日本一区色情无码视频在线观看 | 美国一级免费毛片 | 薄冰电视剧全集40集免费观看 | 亚洲中文国产最新在线观看 | 理论片在线观看片免费 | 国产在线播放网址 | 窝窝午夜看片 | 波多野结衣医院被强在线 | 性殴美高清视频 | 国产乱子伦视频大全 | chinese18国产高清 | 69免费视频 | 99re视频在线播放 | 黄色网址免费大全 | 精品人妻无码一区二区三区在线 | 国产福利资源在线 | 丁香五月亚洲春色 | 男Ji大巴进入女人的视频小说 | 91亚洲精品福利在线播放 | 成人精品一区日本无码网 | 在线看片成人免费视频 | 操欧美女| 无码精品一区二区三区视频色欲网 | 亚洲中文超碰中文字幕 | 国产99在线播放 | 激情啪啪精品一区二区 | 黄视频网站免费看 | 精品无码一区二区三区中文字幕 | 337P粉嫩大胆色噜噜嚕 | 日韩城人网站 | 亚洲精品久久久久高潮 | 国产毛片女人18水多 | 色迷迷网站 | 国产成人91高清精品免费 | 国产人妻人伦精品无码.麻豆 | 一本到亚洲网 | 在线欧美精品一区二区三区 | 日韩A片中文字幕视频免费 日韩MV欧美MV中文无码 | 国产色情无码永久免费软件 | 亚洲一区二区三区91 | 99久久精品全部 | 2021久久伊人精品中文字幕有 | 欧美特黄三级成人 | 久久成人免费网站 | 日韩国产第一页 | 国产精品99久久免费黑人人妻 | 天天澡天天干 | 天天夜夜啦啦啦 | 少妇系列之白嫩人妻 | 蜜桃日本免费观看MV | 99视频30精品视频在线观看 | 91福利网址导航 | 亚洲国产精品天堂在线播放 | 色欲精品国产一区二区三区 | 久久久高清国产999尤物 | 韩国高清乱理伦片在线观看 | yy直播不雅视频完整版 | 国产免费AV吧在线观看 | 中文无码第3页不卡av | 国产AV午夜精品一区二区入口 | 国产精品人妻久久无码不卡 | 高清黄色一级片 | 91小视频在线 | 亚洲精品久久久久一区二区三区 | 日本免费一二三区中文 | 国产老师开裆丝袜喷水漫画 | 又色又爽又黄的在线视频免费看 | 成人色色| 久操网在线 | 国产ts人妖系列视频网站 | 荡公乱妇第1章方情公憩系列大 | 四虎国产精品永久一区高清 | 国产一级毛片a午夜一级毛片 | 蜜桃日本免费看MV免费版 | 特级做A爰片久久毛片A片喷水 | 秋霞精品 | 国产成人精品一区 | 狠狠干很很操 | xxx国产精品xxx | 中文天堂在线观看 | 狠狠操天天射 | 丁香激情小说 | 亚洲综合AV久久国产精品凡士林 | 精品国产乱码久久久久久口爆 | 艺校水嫩漂亮得2美女 | 一级a级国产不卡毛片 | 日本毛片久久国产精品 | 在线看黄色的网站 | 男人边吃奶边做愛视频 | 成人做爰视频WWW网站 | 久久88香港三级台湾三级中文 | 拔插拔插永久免费 | 激情区小说区偷拍区图片区 | 丁香花视频免费播放社区 | 亚洲国产欧美在线观看 | 三级欧美在线 | 国产香线蕉手机视频在线观看 | 国产网曝手机视频在线观看 | 国产午夜精品片一区二区三区 | 苍井空A级在线观看网站 | 97精品视频在线 | 欧美精品第二页 | 在教室伦流澡到高潮H强圩动漫 | 中文字幕在线不卡日本v二区 | 免费观看一级成人毛片软件 | 国产成久久免费精品AV片天堂 | 欧美日韩综合一区 | 快穿之被系统肉到哭H | 日本久久精品毛片一区随边看 | jizz韩国| 99国产精品人妻无码网站 | 中日韩毛片 | 伦韩国理论片琪琪在线观看 | 夜夜躁狠狠躁日日躁孕妇 | 欧美在线视频精品 | 九九99re热线精品视频 | 午夜DJ影院在线观看免费完整高清 | 无人高清视频免费观看在线下载 | 长篇YIN乱大合集TXT全文下载 | 女人脱精光让人桶爽了 | 美国一级毛片免费 | 开心色播五月 | 久久国内精品视频 | 粗壮挺进邻居人妻无码 | 97超碰免费人妻中文 | 小妖精又紧又湿高潮H视频69 | 日本一道一区二区免费看 | 色偷拍自怕亚洲在线 | 40集电视剧免费看全集在线观看 | 国产欧美日韩专区发布 | 久久草在线视频国产一 | 色噜噜噜色噜噜噜色琪琪 | 国产真人性做爰视频免费40分钟 | 成年福利片在线观看 | 五月天在线网站 | 国产精品不卡在线观看 | 免费观看波多野结衣 | AV无码A片高潮AV | 扒开粉嫩小泬把舌头伸进去添视频 | 丝袜视频网在线观看 | 国产精品51麻豆CM传媒 | 中文字幕日本特黄AA毛片 | 日韩黄色在线 | 久久久日韩成人精品电影 | 色福利网| 光棍影片在线观看免费 | 久久久国产高清 | 十八禁啪漫动漫在线看 | 国产精品扒开腿做爽爽爽王者A片 | 国产成人综合久久精品红 | 久操五月天| 天天摸夜夜添夜夜添A片小说 | 大胆欧美xxxxxxbbbbb | 94色94色永久网站 | 国产熟女一区视频在线播放 | 伊人综合在线 影院 | 超碰老师97zyz资源总站 | 色翁荡熄又大又硬又粗又视频图片 | WW.国产人妻人伦精品 | 国产精品久久人妻无码网站一区无 | 欧美巨乳勺A片 | 无码乱人伦一区二区亚洲 | 久久综合偷拍无码 | 在线日韩欧美一区二区三区 | 99国精产品| 国产精品18久久久久久欧美 | 调教美女校花 | 国产精品青青在线麻豆 | 欧美日韩综合无码中文字幕 | 诱人的女邻居在线观看 | 免费看污又色又爽又黄又脏小说 | 蜜桃精品成人影片 | 亚洲欧美中文字幕高清在线 | 亚洲AV成人无码人在线观看堂 | 在线观看的黄色网址 | 少妇特黄A片一区二区三区免费看 | 中文字幕天堂最新版在线网 | 缴情五月天 | 四虎国产精品永久一区高清 | 日韩精品一区二区三区在线观看l | 国产高清不卡一区二区三区 | 五月婷婷激情 | 日本工口生肉全彩大全 | 亚洲欧美日韩国产手机在线 | 欧美一级夜夜爽 | 狠狠色丁香久久婷婷综合图片 | 久久久精品久久久久三级 | 成人免费无码A片免费看软件 | 丝瓜app汅api免费丝瓜在线下载 | 免费的又色又爽又黄的视频软件 | 草草视频在线播放 | 日日躁夜夜躁狠狠久久AV | 色欲久久精品无码一区二区三区 | 三级在线观看中文字幕完整版 | 国产成人免费视频 | 亚洲欧美中文v日韩v在线 | 特级毛片片A片AAAAAA | 同性男打屁股spank网站 | 亚洲日韩精品射精日 | 好爽插到我子宫了高清在线 | 99久久精品免费观看区一 | 国产高清精品91在线 | 亚洲精品久荜中文字幕 | 国产真人无码AV在线观看APP | 成人a影片在线观看 | 99久久精品免费观看区一 | 国产真实乱系列 | 国产91导航 | www.波多野 | 免费观看成人毛片A片2008 | 成年黄色网 | 成熟妇人A片免费看网站 | 国产内地激情精品毛片在线一 | 天天爱天天做天天干 | 久久日本精品在线热 | 青青草免费国产线观720 | 最好看的2018国语在线 | 美女裸身大乳图片大全 | 日韩成人在线网站 | 亚洲精品国产综合99久久一区 | 欧美又大又硬又长又粗A片 欧美又黄又大又爽A片 | 国产丰满老熟妇乱XXX | 久在线观看福利视频 | 中文字幕人妻A片免费看 | 色婷婷精品大全在线视频 | 巨大黑人极品videos中国 | 免费污污网站 | 囯产精品宾馆在线精品酒店 | 国产亚洲精品久久久久久线投注 | 51成人网| 国产高清亚洲精品26u | 无套内谢少妇毛片A片 | 国产99久一区二区三区A片 | 免费国产美女爽到喷出水来视频 | 天天操天天操天天射 | 大地影院日本韩国电影免费观看 | 欧美性xxxx另类 | 全身无赤裸裸美女 | 日本一道人妻无码一区视频 | 日本视频在线观看免费 | 伦理片2488电影伦理片 | 国产亚洲精品久久久999无毒 | 人成乱码一卡二卡三四卡无卡六卡 | 久久精品AV一区二区三 | 亚洲小说乱欧美另类 | 在线观看黄色网页 | 亚洲H成年动漫在线观看不卡 | 国精一二二产品无人区免费应用 | 高潮喷水无码AV亚洲 | 性爱视频在线播放 | 97在线视频免费观看 | 99久久99久久久精品久久 | 一本色道久久综合亚洲精品加 | 免费视频在线观看网站 | 蜜桃色情在线观看 | 免费国产一级特黄aa大 | 无码人妻丰满熟妇A片护士电影 | 国产亚洲综合一区二区在线 | 夜夜操网| jizzjizz国产| 久久人妻熟女中文字幕AV蜜芽 | 国产69精品久久久久乱码韩国 | 国产xxxxxx久色视频在 | 欧美大屁股熟妇BBBBBB | 国产天美 | 欧美无人区码卡二卡3卡4乱码 | 最近免费MV在线观看动漫 | 国内精品乱码卡一卡2卡三卡 | 在线一区二区三区 | 亚洲精品久久久久久久久AV无码 | 美国毛片亚洲社区在线观看 | 在线观看v片免费视频 | 激视频小说区在线观看 | 日本欧美不卡一区二区三区在线 | 婷婷丁香五月啪啪综合 | 中文字幕熟女人妻理论片 | 日韩亚洲欧美中文高清 | 把腿张开老子臊烂你多P视频软件 | 免费看污网站 | 影音先锋成人无码影院 | 国产在线视频精品视频 | 精品欧美成人高清在线观看2021 | 欧美特黄一区二区三区 | 成年女人在线视频 | 日本一区二区三区无码苍井空 | 女人18毛片久久 | 香港日本三级在线播放 | 香港日本韩国三级 | 日韩色天使综合色视频 | 99在线观看视频 | YIN荡俱乐部调教男男 | 国产成人精品日本亚洲网址 | 最新欧美人妖hdxxxx | 97视频免费在线 | 夜夜精品视频一区二区 | 成人在免费视频手机观看网站 | 99久久久无码国产精品免费人妻 | 中国xxxxwwww泡妞的软件 | 免费人成黄页在线观看日本 | 久久综合给合久久狠狠狠97色69 | 18成网站www在线观看 | 日本 欧美 在线 高清 | 午夜精品九九九九99蜜桃 | 久久精品国产精品 | 日产乱码卡1卡2卡三卡四在线 | 99久久精品视香蕉蕉er热资源 | 国亚洲欧美日韩精品 | 伊人福利网 | 国产精品亚洲玖玖玖在线靠爱 | 热久久国产欧美一区二区精品 | 国产二级一片内射视频播放 | 国产亚洲产品影市在线产品 | 亚洲图片欧美文学小说激情 | 国产精品人妻久久久久A片-百度 | av我要看| 亚洲国产日韩欧美视频二区 | 日产精品视频 | 9900LU永久跳转| 欧美精品亚洲精品日韩专区 | 日韩精品一区二区三区中文 | 欧美另类网站 | 片毛片免费看 | 98国产精品人妻无码免费 | 国产成人综合亚洲 | 粗长巨龙挤进美妇 | 日日摸天天摸人人看 | 国产aaa免费视频国产 | 日本无翼乌邪恶大全彩男男 | 国产男女猛烈无遮挡A片软件 | 日韩精品中文字幕一区二区三区 | 九热视频 | 老湿免费体验区 | 麻豆传煤免费网站入在线观看 | 成年女人免费播放影院 | 麻豆AV久久无码精品九九 | 国产成人一区二区 | 欧洲无人区卡一卡二卡三 | 日韩在线永久免费播放 | 最新国产在线观看福利 | 最新国产中文字幕 | 国产乱人偷精品人妻A片 | 久久99精品国产99久久 | 九九影院免费还看视频 | 五月天 丁香 | 国产毛片女人18水多 | 日韩精品亚洲专区在线影院 | 日韩视频在线精品视频免费观看 | 欧美亚洲性色影视在线 | 91福利国产在线观一区二区 | 国产精品反差婊在线观看 | 久热精品视频在线播放 | 日本亚洲欧洲免费无码 | 日韩精品视频免费网址 | 伦理电影网韩国伦理片 | 亚洲天堂久久久 | 在教室伦流澡到高潮H女攻视频 | 纯肉宠文高h一对一 | 日韩ed2k | 在线免费日本 | 四房色播网址 | 十九岁日本电影免费粤语 | 五月天久久婷婷 | 无人区乱码区1卡2卡三卡在线 | 亚洲一区日本 | 第一成人影院 | 国产麻豆放荡AV剧情演绎 | 久久久久九九精品影院 | 欧美一区中文字幕 | 宅男午夜大片又黄又爽大片 | 偷偷狠狠的日日高清完整视频 | 中国漂亮护士一级毛片 | 欧美三级真做在线观看 | 欧美激情一区二区三区四区 | 久久综合色区 | 色你妹gif动态图片 色哦色哦哦色天天综合 | 亚洲v欧美 | 小小视频资源免费观看高清 | 国产电影一区二区三区 | 四虎comwww最新地址 | 久久精品麻豆日日躁夜夜躁 | 久操精品在线观看 | 日本免费一区二区在线观看 | 成人网zhan | 18禁无遮挡爽爽爽无码视频 | 8x在线成人| 国产精品第一综合首页 | 五月激情婷婷丁香 | 度年华电视剧在线观看 | 一抽一出BGM试看60分 | 国产乱码免费卡1卡二卡3卡 | 日本免费黄网站 | 亚洲粉嫩美白在线 | 日韩有码视频在线 | 中字幕视频在线永久在线观看免费 | 日本视频一区二区免费播放 | 性xxxx视频在线观看 | 午夜伦理| 日本护士激情波多野结衣 | 永久在线视频 | 亚洲一区不卡视频 | 狠狠狠狠干 | 91精品国产品国语在线不卡 | 搜麻豆|