๊ฑ Action ๋Œ€์‹  ์“ฐ๋ฉด ๋จ


Action on๋ฒ„ํŠผํด๋ฆญ;

on๋ฒ„ํŠผํด๋ฆญ += ()=>{๋ฒ„ํŠผ ํด๋ฆญ์‹œ ์‹คํ–‰ํ•  ์ฝ”๋“œ...} ์ด๋ ‡๊ฒŒ ํ•ด๋†“์œผ๋ฉด ๋‚˜์ค‘์— ๊ตฌ๋…ํ•ด์ œ๊ฐ€ ๋‚œ๊ฐํ•ด์ง€๋‹ˆ๊นŒ


void Handle() ์ด๋Ÿฐ ํ•ธ๋“ค๋Ÿฌ ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ค์–ด์„œ

{

๋ฒ„ํŠผ ํด๋ฆญ์‹œ ์‹คํ–‰ํ•  ์ฝ”๋“œ...

}

๋ฒ„ํŠผ์ƒ์„ฑ();

on๋ฒ„ํŠผํด๋ฆญ += Handle;

๋ฒ„ํŠผ์ œ๊ฑฐ();

on๋ฒ„ํŠผํด๋ฆญ -= Handle;


์ด๋ ‡๊ฒŒ ๋ถˆํŽธํ•˜๊ฒŒ ์จ์•ผ ํ•˜๋Š”๊ฑธ


Subject<Unit> ๋ฒ„ํŠผํด๋ฆญ์ŠคํŠธ๋ฆผ;

๋ฒ„ํŠผ์ƒ์„ฑ();

IDisposable handle = ๋ฒ„ํŠผํด๋ฆญ์ŠคํŠธ๋ฆผ.Subscribe(_=> {๋ฒ„ํŠผ ํด๋ฆญ์‹œ ์‹คํ–‰ํ•  ์ฝ”๋“œ...๊ฐ„ํŽธํ•˜๊ฒŒ ๋žŒ๋‹ค๋กœ});

๋ฒ„ํŠผ์ œ๊ฑฐ();

handle.Dispose(); <๊ตฌ๋… ํ•ด์ œ๋จ



๋”ฑ ์ด๊ธฐ๋Šฅ๋งŒ ์จ๋„ R3 ๊ฐ’ ํ•จ


์—ฌ๊ธฐ์„œ ํ•œ๋ฒˆ ๋”๋‚˜๊ฐ€๋ฉด


๋ฒ„ํŠผํด๋ฆญ์ŠคํŠธ๋ฆผ.ThrottleFirstFrame(5) // ํ•œ๋ฒˆ ๋ฐœ๋™ํ•˜๋ฉด 5ํ”„๋ ˆ์ž„ ๋™์•ˆ ๋˜ ์™€๋„ ๋ฌด์‹œ. ๊ด‘ํด ์–ต์ œ๋“ฑ์— ์ข‹์Œ

.Subscribe(_=> {์ด์ œ ์ด๊ฑด ๋ฒ„ํŠผ์ด ์ค‘๋ณต์œผ๋กœ ๋งŽ์ด ํด๋ฆญ ๋˜๋„ 5ํ”„๋ ˆ์ž„๋งˆ๋‹ค ํ•œ๋ฒˆ์”ฉ๋งŒ ๋ฐœ๋™});


์ •๋„๋งŒ ์จ๋„ ๋จ


๋ญ” RX ๋ผ๊ณ  ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ• ๊ฑฐ ์—†์Œ ๊ฑ Action์— ํŽธํ•œ ๊ธฐ๋Šฅ ์ด๊ฑฐ์ €๊ฑฐ ๋„ฃ์€ ํŽธ์˜ ์œ ํ‹ธ์ž„ย 


์—ฌ๊ธฐ์„œ ๋” ๋‚˜๊ฐ€๋ฉด

ReactiveProperty๋กœ ๋งˆ์ง€๋ง‰๊ฐ’ ์บ์‹ฑ,

๋จธ์ง€๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์ž…๋ ฅ ๋ฌถ๊ธฐ,

์ปด๋ฐ”์ธ ๋ ˆ์ดํ‹ฐ์ŠคํŠธ๋กœ ๋งˆ์ง€๋ง‰ ์ด๋ฒคํŠธ๋“ค ์ทจํ•ฉ,

using var ๋กœ ํŠน์ • ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ๋งŒ ํ™œ์„ฑํ™”,

PairWise๋กœ ์ด์ „๊ฐ’ ์–ป๊ธฐ ๋“ฑ๋“ฑ ์“ธ๋งŒํ•œ ๊ธฐ๋Šฅ์ด ๋งŽ์€๋ฐ,


์ž…๋ฌธ์€ ๊ฑ IDisposable ๊ตฌ๋…ํ•ด์ œ๋ž‘ ์“ฐ๋กœํ‹€ ๋‘๊ฐœ์ •๋„๋งŒ ์จ๋„ ์ถฉ๋ถ„ย